home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / m62.c < prev    next >
C/C++ Source or Header  |  2000-05-25  |  88KB  |  1,959 lines

  1. /****************************************************************************
  2.  
  3. Irem "M62" system
  4.  
  5. There's two crystals on Kid Kiki. 24.00 MHz and 3.579545 MHz for sound
  6.  
  7. TODO:
  8. - Kid Niki is missing the drums
  9.  
  10. **************************************************************************/
  11.  
  12. #include "driver.h"
  13. #include "sndhrdw/irem.h"
  14. #include "vidhrdw/generic.h"
  15.  
  16.  
  17. void irem_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  18. void battroad_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  19. void spelunk2_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  20. int ldrun_vh_start( void );
  21. int kidniki_vh_start( void );
  22. int spelunkr_vh_start( void );
  23. WRITE_HANDLER( irem_flipscreen_w );
  24. WRITE_HANDLER( kungfum_scroll_low_w );
  25. WRITE_HANDLER( kungfum_scroll_high_w );
  26. WRITE_HANDLER( ldrun3_vscroll_w );
  27. WRITE_HANDLER( ldrun4_hscroll_w );
  28. WRITE_HANDLER( irem_background_hscroll_w );
  29. WRITE_HANDLER( irem_background_vscroll_w );
  30. WRITE_HANDLER( battroad_scroll_w );
  31. WRITE_HANDLER( kidniki_text_vscroll_w );
  32. WRITE_HANDLER( kidniki_background_bank_w );
  33. WRITE_HANDLER( spelunkr_palbank_w );
  34. WRITE_HANDLER( spelunk2_gfxport_w );
  35. void kungfum_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
  36. void battroad_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
  37. void ldrun_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  38. void ldrun4_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  39. void lotlot_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  40. void kidniki_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
  41. void spelunkr_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
  42. void spelunk2_vh_screenrefresh(struct osd_bitmap *bitmap,int fullrefresh);
  43.  
  44. extern unsigned char *irem_textram;
  45. extern size_t irem_textram_size;
  46.  
  47.  
  48.  
  49. /* Lode Runner 2 seems to have a simple protection on the bank switching */
  50. /* circuitry. It writes data to ports 0x80 and 0x81, then reads port 0x80 */
  51. /* a variable number of times (discarding the result) and finally retrieves */
  52. /* data from the bankswitched ROM area. */
  53. /* Since the data written to 0x80 is always the level number, I just use */
  54. /* that to select the ROM. The only exception I make is a special case used in */
  55. /* service mode to test the ROMs. */
  56. static int ldrun2_bankswap;
  57.  
  58. READ_HANDLER( ldrun2_bankswitch_r )
  59. {
  60.     if (ldrun2_bankswap)
  61.     {
  62.         unsigned char *RAM = memory_region(REGION_CPU1);
  63.  
  64.  
  65.         ldrun2_bankswap--;
  66.  
  67.         /* swap to bank #1 on second read */
  68.         if (ldrun2_bankswap == 0)
  69.             cpu_setbank(1,&RAM[0x12000]);
  70.     }
  71.     return 0;
  72. }
  73.  
  74. WRITE_HANDLER( ldrun2_bankswitch_w )
  75. {
  76.     int bankaddress;
  77.     static int bankcontrol[2];
  78.     int banks[30] =
  79.     {
  80.         0,0,0,0,0,1,0,1,0,0,
  81.         0,1,1,1,1,1,0,0,0,0,
  82.         1,0,1,1,1,1,1,1,1,1
  83.     };
  84.     unsigned char *RAM = memory_region(REGION_CPU1);
  85.  
  86.  
  87.     bankcontrol[offset] = data;
  88.     if (offset == 0)
  89.     {
  90.         if (data < 1 || data > 30)
  91.         {
  92. logerror("unknown bank select %02x\n",data);
  93.             return;
  94.         }
  95.         bankaddress = 0x10000 + (banks[data-1] * 0x2000);
  96.         cpu_setbank(1,&RAM[bankaddress]);
  97.     }
  98.     else
  99.     {
  100.         if (bankcontrol[0] == 0x01 && data == 0x0d)
  101.         /* special case for service mode */
  102.             ldrun2_bankswap = 2;
  103.         else ldrun2_bankswap = 0;
  104.     }
  105. }
  106.  
  107.  
  108. /* Lode Runner 3 has, it seems, a poor man's protection consisting of a PAL */
  109. /* (I think; it's included in the ROM set) which is read at certain times, */
  110. /* and the game crashes if ti doesn't match the expected values. */
  111. READ_HANDLER( ldrun3_prot_5_r )
  112. {
  113.     return 5;
  114. }
  115.  
  116. READ_HANDLER( ldrun3_prot_7_r )
  117. {
  118.     return 7;
  119. }
  120.  
  121.  
  122. WRITE_HANDLER( ldrun4_bankswitch_w )
  123. {
  124.     int bankaddress;
  125.     unsigned char *RAM = memory_region(REGION_CPU1);
  126.  
  127.  
  128.     bankaddress = 0x10000 + ((data & 0x01) * 0x4000);
  129.     cpu_setbank(1,&RAM[bankaddress]);
  130. }
  131.  
  132. static WRITE_HANDLER( kidniki_bankswitch_w )
  133. {
  134.     int bankaddress;
  135.     unsigned char *RAM = memory_region(REGION_CPU1);
  136.  
  137.  
  138.     bankaddress = 0x10000 + (data & 0x0f) * 0x2000;
  139.     cpu_setbank(1,&RAM[bankaddress]);
  140. }
  141.  
  142. #define battroad_bankswitch_w kidniki_bankswitch_w
  143.  
  144. static WRITE_HANDLER( spelunkr_bankswitch_w )
  145. {
  146.     int bankaddress;
  147.     unsigned char *RAM = memory_region(REGION_CPU1);
  148.  
  149.  
  150.     bankaddress = 0x10000 + (data & 0x03) * 0x2000;
  151.     cpu_setbank(1,&RAM[bankaddress]);
  152. }
  153.  
  154. WRITE_HANDLER( spelunk2_bankswitch_w )
  155. {
  156.     unsigned char *RAM = memory_region(REGION_CPU1);
  157.  
  158.  
  159.     cpu_setbank(1,&RAM[0x20000 + 0x1000 * ((data & 0xc0)>>6)]);
  160.     cpu_setbank(2,&RAM[0x10000 + 0x0400 *  (data & 0x3c)]);
  161. }
  162.  
  163.  
  164.  
  165.  
  166. static struct MemoryWriteAddress kungfum_writemem[] =
  167. {
  168.     { 0x0000, 0x7fff, MWA_ROM },
  169.     { 0xa000, 0xa000, kungfum_scroll_low_w },
  170.     { 0xb000, 0xb000, kungfum_scroll_high_w },
  171.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  172.     /* Kung Fu Master is the only game in this driver to have separated (but */
  173.     /* contiguous) videoram and colorram. They are interleaved in all the others. */
  174.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  175.     { 0xe000, 0xefff, MWA_RAM },
  176.     { -1 }    /* end of table */
  177. };
  178.  
  179. static struct MemoryReadAddress battroad_readmem[] =
  180. {
  181.     { 0x0000, 0x7fff, MRA_ROM },
  182.     { 0xa000, 0xbfff, MRA_BANK1 },
  183.     { 0xc800, 0xefff, MRA_RAM },
  184.     { -1 }    /* end of table */
  185. };
  186.  
  187. static struct MemoryWriteAddress battroad_writemem[] =
  188. {
  189.     { 0x0000, 0xbfff, MWA_ROM },
  190.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  191.     { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
  192.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  193.     { 0xe000, 0xefff, MWA_RAM },
  194.     { -1 }    /* end of table */
  195. };
  196.  
  197. static struct MemoryReadAddress ldrun_readmem[] =
  198. {
  199.     { 0x0000, 0x7fff, MRA_ROM },
  200.     { 0xd000, 0xefff, MRA_RAM },
  201.     { -1 }    /* end of table */
  202. };
  203.  
  204. static struct MemoryWriteAddress ldrun_writemem[] =
  205. {
  206.     { 0x0000, 0x7fff, MWA_ROM },
  207.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  208.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  209.     { 0xe000, 0xefff, MWA_RAM },
  210.     { -1 }    /* end of table */
  211. };
  212.  
  213. static struct MemoryReadAddress ldrun2_readmem[] =
  214. {
  215.     { 0x0000, 0x7fff, MRA_ROM },
  216.     { 0x8000, 0x9fff, MRA_BANK1 },
  217.     { 0xd000, 0xefff, MRA_RAM },
  218.     { -1 }    /* end of table */
  219. };
  220.  
  221. static struct MemoryWriteAddress ldrun2_writemem[] =
  222. {
  223.     { 0x0000, 0x9fff, MWA_ROM },
  224.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  225.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  226.     { 0xe000, 0xefff, MWA_RAM },
  227.     { -1 }    /* end of table */
  228. };
  229.  
  230. static struct MemoryReadAddress ldrun3_readmem[] =
  231. {
  232.     { 0x0000, 0xbfff, MRA_ROM },
  233.     { 0xc800, 0xc800, ldrun3_prot_5_r },
  234.     { 0xcc00, 0xcc00, ldrun3_prot_7_r },
  235.     { 0xcfff, 0xcfff, ldrun3_prot_7_r },
  236.     { 0xd000, 0xefff, MRA_RAM },
  237.     { -1 }    /* end of table */
  238. };
  239.  
  240. static struct MemoryWriteAddress ldrun3_writemem[] =
  241. {
  242.     { 0x0000, 0xbfff, MWA_ROM },
  243.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  244.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  245.     { 0xe000, 0xefff, MWA_RAM },
  246.     { -1 }    /* end of table */
  247. };
  248.  
  249. static struct MemoryReadAddress ldrun4_readmem[] =
  250. {
  251.     { 0x0000, 0x7fff, MRA_ROM },
  252.     { 0x8000, 0xbfff, MRA_BANK1 },
  253.     { 0xd000, 0xefff, MRA_RAM },
  254.     { -1 }    /* end of table */
  255. };
  256.  
  257. static struct MemoryWriteAddress ldrun4_writemem[] =
  258. {
  259.     { 0x0000, 0xbfff, MWA_ROM },
  260.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  261.     { 0xc800, 0xc800, ldrun4_bankswitch_w },
  262.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  263.     { 0xe000, 0xefff, MWA_RAM },
  264.     { -1 }    /* end of table */
  265. };
  266.  
  267. static struct MemoryReadAddress lotlot_readmem[] =
  268. {
  269.     { 0x0000, 0x7fff, MRA_ROM },
  270.     { 0xa000, 0xafff, MRA_RAM },
  271.     { 0xd000, 0xefff, MRA_RAM },
  272.     { -1 }    /* end of table */
  273. };
  274.  
  275. static struct MemoryWriteAddress lotlot_writemem[] =
  276. {
  277.     { 0x0000, 0x7fff, MWA_ROM },
  278.     { 0xa000, 0xafff, MWA_RAM, &irem_textram, &irem_textram_size },
  279.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  280.     { 0xd000, 0xdfff, videoram_w, &videoram, &videoram_size },
  281.     { 0xe000, 0xefff, MWA_RAM },
  282.     { -1 }    /* end of table */
  283. };
  284.  
  285. static struct MemoryReadAddress kidniki_readmem[] = {
  286.     { 0x0000, 0x7fff, MRA_ROM },
  287.     { 0x8000, 0x9fff, MRA_BANK1 },
  288.     { 0xa000, 0xafff, MRA_RAM },
  289.     { 0xd000, 0xefff, MRA_RAM },
  290.     { -1 }    /* end of table */
  291. };
  292.  
  293. static struct MemoryWriteAddress kidniki_writemem[] = {
  294.     { 0x0000, 0x9fff, MWA_ROM },
  295.     { 0xa000, 0xafff, videoram_w, &videoram, &videoram_size },
  296.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  297.     { 0xd000, 0xdfff, MWA_RAM, &irem_textram, &irem_textram_size },
  298.     { 0xe000, 0xefff, MWA_RAM },
  299.     { -1 }    /* end of table */
  300. };
  301.  
  302. static struct MemoryReadAddress spelunkr_readmem[] =
  303. {
  304.     { 0x0000, 0x7fff, MRA_ROM },
  305.     { 0x8000, 0x9fff, MRA_BANK1 },
  306.     { 0xa000, 0xbfff, MRA_RAM },
  307.     { 0xc800, 0xcfff, MRA_RAM },
  308.     { 0xe000, 0xefff, MRA_RAM },
  309.     { -1 }    /* end of table */
  310. };
  311.  
  312. static struct MemoryWriteAddress spelunkr_writemem[] =
  313. {
  314.     { 0x0000, 0x9fff, MWA_ROM },
  315.     { 0xa000, 0xbfff, videoram_w, &videoram, &videoram_size },
  316.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  317.     { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
  318.     { 0xd000, 0xd001, irem_background_vscroll_w },
  319.     { 0xd002, 0xd003, irem_background_hscroll_w },
  320.     { 0xd004, 0xd004, spelunkr_bankswitch_w },
  321.     { 0xd005, 0xd005, spelunkr_palbank_w },
  322.     { 0xe000, 0xefff, MWA_RAM },
  323.     { -1 }    /* end of table */
  324. };
  325.  
  326. static struct MemoryReadAddress spelunk2_readmem[] =
  327. {
  328.     { 0x0000, 0x7fff, MRA_ROM },
  329.     { 0x8000, 0x8fff, MRA_BANK1 },
  330.     { 0x9000, 0x9fff, MRA_BANK2 },
  331.     { 0xa000, 0xbfff, MRA_RAM },
  332.     { 0xc800, 0xcfff, MRA_RAM },
  333.     { 0xe000, 0xefff, MRA_RAM },
  334.     { -1 }    /* end of table */
  335. };
  336.  
  337. static struct MemoryWriteAddress spelunk2_writemem[] =
  338. {
  339.     { 0x0000, 0x9fff, MWA_ROM },
  340.     { 0xa000, 0xbfff, videoram_w, &videoram, &videoram_size },
  341.     { 0xc000, 0xc0ff, MWA_RAM, &spriteram, &spriteram_size },
  342.     { 0xc800, 0xcfff, MWA_RAM, &irem_textram, &irem_textram_size },
  343.     { 0xd000, 0xd002, spelunk2_gfxport_w },
  344.     { 0xd003, 0xd003, spelunk2_bankswitch_w },
  345.     { 0xe000, 0xefff, MWA_RAM },
  346.     { -1 }    /* end of table */
  347. };
  348.  
  349.  
  350. static struct IOReadPort ldrun_readport[] =
  351. {
  352.     { 0x00, 0x00, input_port_0_r },   /* coin */
  353.     { 0x01, 0x01, input_port_1_r },   /* player 1 control */
  354.     { 0x02, 0x02, input_port_2_r },   /* player 2 control */
  355.     { 0x03, 0x03, input_port_3_r },   /* DSW 1 */
  356.     { 0x04, 0x04, input_port_4_r },   /* DSW 2 */
  357.     { -1 }    /* end of table */
  358. };
  359.  
  360. static struct IOWritePort battroad_writeport[] =
  361. {
  362.     { 0x00, 0x00, irem_sound_cmd_w },
  363.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  364.     { 0x80, 0x82, battroad_scroll_w },
  365.     { 0x83, 0x83, battroad_bankswitch_w },
  366.     { -1 }    /* end of table */
  367. };
  368.  
  369. static struct IOWritePort ldrun_writeport[] =
  370. {
  371.     { 0x00, 0x00, irem_sound_cmd_w },
  372.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  373.     { -1 }    /* end of table */
  374. };
  375.  
  376. static struct IOReadPort ldrun2_readport[] =
  377. {
  378.     { 0x00, 0x00, input_port_0_r },   /* coin */
  379.     { 0x01, 0x01, input_port_1_r },   /* player 1 control */
  380.     { 0x02, 0x02, input_port_2_r },   /* player 2 control */
  381.     { 0x03, 0x03, input_port_3_r },   /* DSW 1 */
  382.     { 0x04, 0x04, input_port_4_r },   /* DSW 2 */
  383.     { 0x80, 0x80, ldrun2_bankswitch_r },
  384.     { -1 }    /* end of table */
  385. };
  386.  
  387. static struct IOWritePort ldrun2_writeport[] =
  388. {
  389.     { 0x00, 0x00, irem_sound_cmd_w },
  390.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  391.     { 0x80, 0x81, ldrun2_bankswitch_w },
  392.     { -1 }    /* end of table */
  393. };
  394.  
  395. static struct IOWritePort ldrun3_writeport[] =
  396. {
  397.     { 0x00, 0x00, irem_sound_cmd_w },
  398.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  399.     { 0x80, 0x80, ldrun3_vscroll_w },
  400.     /* 0x81 used too, don't know what for */
  401.     { -1 }    /* end of table */
  402. };
  403.  
  404. static struct IOWritePort ldrun4_writeport[] =
  405. {
  406.     { 0x00, 0x00, irem_sound_cmd_w },
  407.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  408.     { 0x82, 0x83, ldrun4_hscroll_w },
  409.     { -1 }    /* end of table */
  410. };
  411.  
  412. static struct IOWritePort kidniki_writeport[] =
  413. {
  414.     { 0x00, 0x00, irem_sound_cmd_w },
  415.     { 0x01, 0x01, irem_flipscreen_w },    /* + coin counters */
  416.     { 0x80, 0x81, irem_background_hscroll_w },
  417.     { 0x82, 0x83, kidniki_text_vscroll_w },
  418.     { 0x84, 0x84, kidniki_background_bank_w },
  419.     { 0x85, 0x85, kidniki_bankswitch_w },
  420.     { -1 }    /* end of table */
  421. };
  422.  
  423.  
  424.  
  425. #define IN0_PORT \
  426. /* Start 1 & 2 also restarts and freezes the game with stop mode on \
  427.    and are used in test mode to enter and esc the various tests */ \
  428.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \
  429.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) \
  430.     /* service coin must be active for 19 frames to be consistently recognized */ \
  431.     PORT_BIT_IMPULSE( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1, 19 ) \
  432.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) \
  433.     PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  434.  
  435. #define IN1_PORT \
  436.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
  437.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
  438.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
  439.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY ) \
  440.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
  441.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) \
  442.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
  443.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  444.  
  445. #define IN2_PORT \
  446.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
  447.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL ) \
  448.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL ) \
  449.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL ) \
  450.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) \
  451.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL ) \
  452.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */ \
  453.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  454.  
  455. #define    COINAGE_DSW \
  456.     /* TODO: support the different settings which happen in Coin Mode 2 */ \
  457.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
  458.     PORT_DIPSETTING(    0x90, DEF_STR( 7C_1C ) ) \
  459.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) ) \
  460.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) ) \
  461.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) ) \
  462.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) ) \
  463.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) ) \
  464.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
  465.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) ) \
  466.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_3C ) ) \
  467.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_4C ) ) \
  468.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) ) \
  469.     PORT_DIPSETTING(    0x30, DEF_STR( 1C_6C ) ) \
  470.     PORT_DIPSETTING(    0x20, DEF_STR( 1C_7C ) ) \
  471.     PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ) ) \
  472.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
  473.     /* setting 0x80 give 1 Coin/1 Credit */
  474.  
  475.  
  476. #define    COINAGE2_DSW \
  477.     /* TODO: support the different settings which happen in Coin Mode 2 */ \
  478.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) /* mapped on coin mode 1 */ \
  479.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) ) \
  480.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) ) \
  481.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) ) \
  482.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) ) \
  483.     PORT_DIPSETTING(    0x10, DEF_STR( 8C_3C ) ) \
  484.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) ) \
  485.     PORT_DIPSETTING(    0x20, DEF_STR( 5C_3C ) ) \
  486.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) ) \
  487.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
  488.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) ) \
  489.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) ) \
  490.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
  491.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) ) \
  492.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) ) \
  493.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) ) \
  494.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
  495.  
  496.  
  497. INPUT_PORTS_START( kungfum )
  498.     PORT_START    /* IN0 */
  499.     IN0_PORT
  500.  
  501.     PORT_START    /* IN1 */
  502.     IN1_PORT
  503.  
  504.     PORT_START    /* IN2 */
  505.     IN2_PORT
  506.  
  507.     PORT_START    /* DSW1 */
  508.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Difficulty ) )
  509.     PORT_DIPSETTING(    0x01, "Easy" )
  510.     PORT_DIPSETTING(    0x00, "Hard" )
  511.     PORT_DIPNAME( 0x02, 0x02, "Energy Loss" )
  512.     PORT_DIPSETTING(    0x02, "Slow" )
  513.     PORT_DIPSETTING(    0x00, "Fast" )
  514.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  515.     PORT_DIPSETTING(    0x08, "2" )
  516.     PORT_DIPSETTING(    0x0c, "3" )
  517.     PORT_DIPSETTING(    0x04, "4" )
  518.     PORT_DIPSETTING(    0x00, "5" )
  519.     COINAGE_DSW
  520.  
  521.     PORT_START    /* DSW2 */
  522.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  523.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  524.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  525.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  526.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  527.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  528. /* This activates a different coin mode. Look at the dip switch setting schematic */
  529.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  530.     PORT_DIPSETTING(    0x04, "Mode 1" )
  531.     PORT_DIPSETTING(    0x00, "Mode 2" )
  532.     /* In slowmo mode, press 2 to slow game speed */
  533.     PORT_BITX   ( 0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Slow Motion Mode", IP_KEY_NONE, IP_JOY_NONE )
  534.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  535.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  536.     /* In freeze mode, press 2 to stop and 1 to restart */
  537.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  538.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  539.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  540.     /* In level selection mode, press 1 to select and 2 to restart */
  541.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
  542.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  543.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  544.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  545.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  546.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  547.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  548. INPUT_PORTS_END
  549.  
  550. INPUT_PORTS_START( battroad )
  551.     PORT_START    /* IN0 */
  552.     IN0_PORT
  553.  
  554.     PORT_START    /* IN1 */
  555.     IN1_PORT
  556.  
  557.     PORT_START    /* IN2 */
  558.     IN2_PORT
  559.  
  560.     PORT_START    /* DSW1 */
  561.     PORT_DIPNAME( 0x03, 0x03, "Fuel Decrease" )
  562.     PORT_DIPSETTING(    0x03, "Slow" )
  563.     PORT_DIPSETTING(    0x02, "Medium" )
  564.     PORT_DIPSETTING(    0x01, "Fast" )
  565.     PORT_DIPSETTING(    0x00, "Fastest" )
  566.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
  567.     PORT_DIPSETTING(    0x04, "Easy" )
  568.     PORT_DIPSETTING(    0x00, "Hard" )
  569.     PORT_DIPNAME( 0x08, 0x08, "Unknown" )
  570.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  571.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  572.     COINAGE_DSW
  573.  
  574.     PORT_START    /* DSW2 */
  575.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  576.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  577.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  578.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  579.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  580.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  581. /* This activates a different coin mode. Look at the dip switch setting schematic */
  582.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  583.     PORT_DIPSETTING(    0x04, "Mode 1" )
  584.     PORT_DIPSETTING(    0x00, "Mode 2" )
  585.     PORT_DIPNAME( 0x08, 0x00, "Unknown" )
  586.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  587.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  588.     /* In stop mode, press 2 to stop and 1 to restart */
  589.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  590.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  591.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  592.     PORT_DIPNAME( 0x20, 0x20, "Unknown" )
  593.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  594.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  595.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  596.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  597.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  598.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  599. INPUT_PORTS_END
  600.  
  601. INPUT_PORTS_START( ldrun )
  602.     PORT_START    /* IN0 */
  603.     IN0_PORT
  604.  
  605.     PORT_START    /* IN1 */
  606.     IN1_PORT
  607.  
  608.     PORT_START    /* IN2 */
  609.     IN2_PORT
  610.  
  611.     PORT_START    /* DSW1 */
  612.     PORT_DIPNAME( 0x03, 0x03, "Timer" )
  613.     PORT_DIPSETTING(    0x03, "Slow" )
  614.     PORT_DIPSETTING(    0x02, "Medium" )
  615.     PORT_DIPSETTING(    0x01, "Fast" )
  616.     PORT_DIPSETTING(    0x00, "Fastest" )
  617.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  618.     PORT_DIPSETTING(    0x08, "2" )
  619.     PORT_DIPSETTING(    0x0c, "3" )
  620.     PORT_DIPSETTING(    0x04, "4" )
  621.     PORT_DIPSETTING(    0x00, "5" )
  622.     COINAGE_DSW
  623.  
  624.     PORT_START    /* DSW2 */
  625.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  626.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  627.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  628.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  629.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  630.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  631. /* This activates a different coin mode. Look at the dip switch setting schematic */
  632.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  633.     PORT_DIPSETTING(    0x04, "Mode 1" )
  634.     PORT_DIPSETTING(    0x00, "Mode 2" )
  635.     PORT_DIPNAME( 0x08, 0x08, "Unknown" )
  636.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  637.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  638.     /* In stop mode, press 2 to stop and 1 to restart */
  639.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  640.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  641.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  642.     /* In level selection mode, press 1 to select and 2 to restart */
  643.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
  644.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  645.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  646.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  647.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  648.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  649.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  650. INPUT_PORTS_END
  651.  
  652. INPUT_PORTS_START( ldrun2 )
  653.     PORT_START    /* IN0 */
  654.     IN0_PORT
  655.  
  656.     PORT_START    /* IN1 */
  657.     IN1_PORT
  658.  
  659.     PORT_START    /* IN2 */
  660.     IN2_PORT
  661.  
  662.     PORT_START    /* DSW1 */
  663.     PORT_DIPNAME( 0x01, 0x01, "Timer" )
  664.     PORT_DIPSETTING(    0x01, "Slow" )
  665.     PORT_DIPSETTING(    0x00, "Fast" )
  666.     PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
  667.     PORT_DIPSETTING(    0x00, "Low" )
  668.     PORT_DIPSETTING(    0x02, "High" )
  669.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  670.     PORT_DIPSETTING(    0x08, "2" )
  671.     PORT_DIPSETTING(    0x0c, "3" )
  672.     PORT_DIPSETTING(    0x04, "4" )
  673.     PORT_DIPSETTING(    0x00, "5" )
  674.     COINAGE_DSW
  675.  
  676.     PORT_START    /* DSW2 */
  677.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  678.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  679.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  680.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  681.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  682.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  683. /* This activates a different coin mode. Look at the dip switch setting schematic */
  684.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  685.     PORT_DIPSETTING(    0x04, "Mode 1" )
  686.     PORT_DIPSETTING(    0x00, "Mode 2" )
  687.     PORT_DIPNAME( 0x08, 0x08, "Unknown" )
  688.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  689.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  690.     /* In freeze mode, press 2 to stop and 1 to restart */
  691.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  692.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  693.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  694.     /* In level selection mode, press 1 to select and 2 to restart */
  695.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
  696.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  697.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  698.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  699.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  700.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  701.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  702. INPUT_PORTS_END
  703.  
  704. INPUT_PORTS_START( ldrun3 )
  705.     PORT_START    /* IN0 */
  706.     IN0_PORT
  707.  
  708.     PORT_START    /* IN1 */
  709.     IN1_PORT
  710.  
  711.     PORT_START    /* IN2 */
  712.     IN2_PORT
  713.  
  714.     PORT_START    /* DSW1 */
  715.     PORT_DIPNAME( 0x01, 0x01, "Timer" )
  716.     PORT_DIPSETTING(    0x01, "Slow" )
  717.     PORT_DIPSETTING(    0x00, "Fast" )
  718.     PORT_DIPNAME( 0x02, 0x02, "Game Speed" )
  719.     PORT_DIPSETTING(    0x00, "Low" )
  720.     PORT_DIPSETTING(    0x02, "High" )
  721.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  722.     PORT_DIPSETTING(    0x08, "2" )
  723.     PORT_DIPSETTING(    0x0c, "3" )
  724.     PORT_DIPSETTING(    0x04, "4" )
  725.     PORT_DIPSETTING(    0x00, "5" )
  726.     COINAGE_DSW
  727.  
  728.     PORT_START    /* DSW2 */
  729.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  730.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  731.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  732.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  733.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  734.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  735. /* This activates a different coin mode. Look at the dip switch setting schematic */
  736.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  737.     PORT_DIPSETTING(    0x04, "Mode 1" )
  738.     PORT_DIPSETTING(    0x00, "Mode 2" )
  739.     PORT_DIPNAME( 0x08, 0x08, "Unknown" )
  740.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  741.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  742.     /* In stop mode, press 2 to stop and 1 to restart */
  743.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  744.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  745.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  746.     /* In level selection mode, press 1 to select and 2 to restart */
  747.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
  748.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  749.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  750.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  751.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  752.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  753.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  754. INPUT_PORTS_END
  755.  
  756. INPUT_PORTS_START( ldrun4 )
  757.     PORT_START    /* IN0 */
  758.     IN0_PORT
  759.  
  760.     PORT_START    /* IN1 */
  761.     IN1_PORT
  762.  
  763.     PORT_START    /* IN2 */
  764.     IN2_PORT
  765.  
  766.     PORT_START    /* DSW1 */
  767.     PORT_DIPNAME( 0x01, 0x01, "Timer" )
  768.     PORT_DIPSETTING(    0x01, "Slow" )
  769.     PORT_DIPSETTING(    0x00, "Fast" )
  770.     PORT_DIPNAME( 0x02, 0x02, "2 Players Game" )
  771.     PORT_DIPSETTING(    0x00, "1 Credit" )
  772.     PORT_DIPSETTING(    0x02, "2 Credits" )
  773.     PORT_DIPNAME( 0x0c, 0x0c, "1 Player Lives" )
  774.     PORT_DIPSETTING(    0x08, "2" )
  775.     PORT_DIPSETTING(    0x0c, "3" )
  776.     PORT_DIPSETTING(    0x04, "4" )
  777.     PORT_DIPSETTING(    0x00, "5" )
  778.     COINAGE_DSW
  779.  
  780.     PORT_START    /* DSW2 */
  781.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  782.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  783.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  784.     PORT_DIPNAME( 0x02, 0x02, "2 Players Lives" )
  785.     PORT_DIPSETTING(    0x02, "5" )
  786.     PORT_DIPSETTING(    0x00, "6" )
  787. /* This activates a different coin mode. Look at the dip switch setting schematic */
  788.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  789.     PORT_DIPSETTING(    0x04, "Mode 1" )
  790.     PORT_DIPSETTING(    0x00, "Mode 2" )
  791.     PORT_DIPNAME( 0x08, 0x08, "Unknown" )
  792.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  793.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  794.     PORT_DIPNAME( 0x10, 0x10, "Allow 2 Players Game" )
  795.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  796.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  797.     /* In level selection mode, press 1 to select and 2 to restart */
  798.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Level Selection Mode", IP_KEY_NONE, IP_JOY_NONE )
  799.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  800.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  801.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  802.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  803.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  804.     PORT_BITX(    0x80, 0x80, IPT_DIPSWITCH_NAME | IPF_TOGGLE, "Service Mode (must set 2P game to No)", KEYCODE_F2, IP_JOY_NONE )
  805.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  806.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  807. INPUT_PORTS_END
  808.  
  809. INPUT_PORTS_START( lotlot )
  810.     PORT_START    /* IN0 */
  811.     IN0_PORT
  812.  
  813.     PORT_START    /* IN1 */
  814.     IN1_PORT
  815.  
  816.     PORT_START    /* IN2 */
  817.     IN2_PORT
  818.  
  819.     PORT_START    /* DSW1 */
  820.     PORT_DIPNAME( 0x03, 0x03, "Speed" )
  821.     PORT_DIPSETTING(    0x03, "Very Slow" )
  822.     PORT_DIPSETTING(    0x02, "Slow" )
  823.     PORT_DIPSETTING(    0x01, "Fast" )
  824.     PORT_DIPSETTING(    0x00, "Very Fast" )
  825.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  826.     PORT_DIPSETTING(    0x08, "1" )
  827.     PORT_DIPSETTING(    0x04, "2" )
  828.     PORT_DIPSETTING(    0x0c, "3" )
  829.     PORT_DIPSETTING(    0x00, "4" )
  830.     COINAGE2_DSW
  831.  
  832.     PORT_START    /* DSW2 */
  833.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  834.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  835.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  836.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  837.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  838.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  839. /* This activates a different coin mode. Look at the dip switch setting schematic */
  840.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  841.     PORT_DIPSETTING(    0x04, "Mode 1" )
  842.     PORT_DIPSETTING(    0x00, "Mode 2" )
  843.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
  844.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  845.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  846.     /* In freeze mode, press 2 to stop and 1 to restart */
  847.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  848.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  849.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  850.     PORT_DIPNAME( 0x20, 0x20, "Unknown" )
  851.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  852.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  853.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  854.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  855.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  856.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  857. INPUT_PORTS_END
  858.  
  859. INPUT_PORTS_START( kidniki )
  860.     PORT_START
  861.     IN0_PORT
  862.  
  863.     PORT_START
  864.     IN1_PORT
  865.  
  866.     PORT_START
  867.     IN2_PORT
  868.  
  869.     PORT_START    /* DSW1 */
  870.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  871.     PORT_DIPSETTING(    0x02, "2" )
  872.     PORT_DIPSETTING(    0x03, "3" )
  873.     PORT_DIPSETTING(    0x01, "4" )
  874.     PORT_DIPSETTING(    0x00, "5" )
  875.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Difficulty ) )
  876.     PORT_DIPSETTING(    0x04, "Normal" )
  877.     PORT_DIPSETTING(    0x00, "Hard" )
  878.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
  879.     PORT_DIPSETTING(    0x08, "50000" )
  880.     PORT_DIPSETTING(    0x00, "80000" )
  881.     COINAGE2_DSW
  882.  
  883.     PORT_START    /* DSW2 */
  884.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  885.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  886.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  887.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  888.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  889.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  890.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  891.     PORT_DIPSETTING(    0x04, "Mode 1" )
  892.     PORT_DIPSETTING(    0x00, "Mode 2" )
  893.     PORT_DIPNAME( 0x08, 0x08, "Game Repeats" )
  894.     PORT_DIPSETTING(    0x08, DEF_STR( No ) )
  895.     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
  896.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  897.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  898.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  899.     /* In freeze mode, press 2 to stop and 1 to restart */
  900.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  901.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  902.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  903.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  904.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  905.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  906.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  907. INPUT_PORTS_END
  908.  
  909. INPUT_PORTS_START( spelunkr )
  910.     PORT_START    /* IN0 */
  911.     IN0_PORT
  912.  
  913.     PORT_START    /* IN1 */
  914.     IN1_PORT
  915.  
  916.     PORT_START    /* IN2 */
  917.     IN2_PORT
  918.  
  919.     PORT_START    /* DSW1 */
  920.     PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
  921.     PORT_DIPSETTING(    0x03, "Slow" )
  922.     PORT_DIPSETTING(    0x02, "Medium" )
  923.     PORT_DIPSETTING(    0x01, "Fast" )
  924.     PORT_DIPSETTING(    0x00, "Fastest" )
  925.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  926.     PORT_DIPSETTING(    0x08, "2" )
  927.     PORT_DIPSETTING(    0x0c, "3" )
  928.     PORT_DIPSETTING(    0x04, "4" )
  929.     PORT_DIPSETTING(    0x00, "5" )
  930.     COINAGE2_DSW
  931.  
  932.     PORT_START    /* DSW2 */
  933.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  934.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  935.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  936.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  937.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  938.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  939. /* This activates a different coin mode. Look at the dip switch setting schematic */
  940.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  941.     PORT_DIPSETTING(    0x04, "Mode 1" )
  942.     PORT_DIPSETTING(    0x00, "Mode 2" )
  943.     PORT_DIPNAME( 0x08, 0x00, "Allow Continue" )
  944.     PORT_DIPSETTING(    0x08, DEF_STR( No ) )
  945.     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
  946.     /* In teleport mode, keep 1 pressed and press up or down to move the character */
  947.     PORT_BITX   ( 0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Teleport", IP_KEY_NONE, IP_JOY_NONE )
  948.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  949.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  950.     /* In freeze mode, press 2 to stop and 1 to restart */
  951.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  952.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  953.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  954.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  955.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  956.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  957.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  958. INPUT_PORTS_END
  959.  
  960. INPUT_PORTS_START( spelunk2 )
  961.     PORT_START    /* IN0 */
  962.     IN0_PORT
  963.  
  964.     PORT_START    /* IN1 */
  965.     IN1_PORT
  966.  
  967.     PORT_START    /* IN2 */
  968.     IN2_PORT
  969.  
  970.     PORT_START    /* DSW1 */
  971.     PORT_DIPNAME( 0x03, 0x03, "Energy Decrease" )
  972.     PORT_DIPSETTING(    0x03, "Slow" )
  973.     PORT_DIPSETTING(    0x02, "Medium" )
  974.     PORT_DIPSETTING(    0x01, "Fast" )
  975.     PORT_DIPSETTING(    0x00, "Fastest" )
  976.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  977.     PORT_DIPSETTING(    0x08, "2" )
  978.     PORT_DIPSETTING(    0x0c, "3" )
  979.     PORT_DIPSETTING(    0x04, "4" )
  980.     PORT_DIPSETTING(    0x00, "5" )
  981.     COINAGE2_DSW
  982.  
  983.     PORT_START    /* DSW2 */
  984.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  985.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  986.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  987.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  988.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  989.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  990. /* This activates a different coin mode. Look at the dip switch setting schematic */
  991.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  992.     PORT_DIPSETTING(    0x04, "Mode 1" )
  993.     PORT_DIPSETTING(    0x00, "Mode 2" )
  994.     PORT_DIPNAME( 0x08, 0x08, "Allow Continue" )
  995.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  996.     PORT_DIPSETTING(    0x08, DEF_STR( Yes ) )
  997.     PORT_DIPNAME( 0x10, 0x10, "Unknown" )
  998.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  999.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1000.     /* In freeze mode, press 2 to stop and 1 to restart */
  1001.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Freeze", IP_KEY_NONE, IP_JOY_NONE )
  1002.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1003.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1004.     PORT_BITX(    0x40, 0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1005.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1006.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1007.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1008. INPUT_PORTS_END
  1009.  
  1010.  
  1011.  
  1012. #define TILELAYOUT(NUM) static struct GfxLayout tilelayout_##NUM =  \
  1013. {                                                                   \
  1014.     8,8,    /* 8*8 characters */                                    \
  1015.     NUM,    /* NUM characters */                                    \
  1016.     3,    /* 3 bits per pixel */                                      \
  1017.     { 2*NUM*8*8, NUM*8*8, 0 },                                      \
  1018.     { 0, 1, 2, 3, 4, 5, 6, 7 },                                     \
  1019.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },                     \
  1020.     8*8    /* every char takes 8 consecutive bytes */                  \
  1021. }
  1022.  
  1023. TILELAYOUT(1024);
  1024. TILELAYOUT(2048);
  1025. TILELAYOUT(4096);
  1026.  
  1027.  
  1028. static struct GfxLayout battroad_charlayout =
  1029. {
  1030.     8,8,    /* 8*8 characters */
  1031.     1024,    /* number of characters */
  1032.     2,    /* 2 bits per pixel */
  1033.     { 0, 1024*8*8 },
  1034.     { 0, 1, 2, 3, 4, 5, 6, 7 },
  1035.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1036.     8*8    /* every char takes 8 consecutive bytes */
  1037. };
  1038.  
  1039. static struct GfxLayout lotlot_charlayout =
  1040. {
  1041.     12,10, /* character size */
  1042.     256, /* number of characters */
  1043.     3, /* bits per pixel */
  1044.     { 0, 256*32*8, 2*256*32*8 },
  1045.     { 0, 1, 2, 3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
  1046.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 },
  1047.     32*8    /* every char takes 32 consecutive bytes */
  1048. };
  1049.  
  1050. static struct GfxLayout kidniki_charlayout =
  1051. {
  1052.     12,8, /* character size */
  1053.     1024, /* number of characters */
  1054.     3, /* bits per pixel */
  1055.     { 0, 0x4000*8, 2*0x4000*8 },
  1056.     { 0, 1, 2, 3, 64+0,64+1,64+2,64+3,64+4,64+5,64+6,64+7 },
  1057.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1058.     16*8    /* every char takes 16 consecutive bytes */
  1059. };
  1060.  
  1061. static struct GfxLayout spelunk2_charlayout =
  1062. {
  1063.     12,8, /* character size */
  1064.     512, /* number of characters */
  1065.     3, /* bits per pixel */
  1066.     { 0, 0x4000*8, 2*0x4000*8 },
  1067.     {
  1068.         0,1,2,3,
  1069.         0x2000*8+0,0x2000*8+1,0x2000*8+2,0x2000*8+3,
  1070.         0x2000*8+4,0x2000*8+5,0x2000*8+6,0x2000*8+7
  1071.     },
  1072.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1073.     8*8    /* every char takes 8 consecutive bytes */
  1074. };
  1075.  
  1076. #define SPRITELAYOUT(NUM) static struct GfxLayout spritelayout_##NUM =         \
  1077. {                                                                              \
  1078.     16,16,    /* 16*16 sprites */                                                \
  1079.     NUM,    /* NUM sprites */                                                  \
  1080.     3,    /* 3 bits per pixel */                                                 \
  1081.     { 2*NUM*32*8, NUM*32*8, 0 },                                               \
  1082.     { 0, 1, 2, 3, 4, 5, 6, 7,                                                  \
  1083.             16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },  \
  1084.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,                                  \
  1085.             8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },                    \
  1086.     32*8    /* every sprite takes 32 consecutive bytes */                      \
  1087. }
  1088.  
  1089. SPRITELAYOUT(256);
  1090. SPRITELAYOUT(512);
  1091. SPRITELAYOUT(1024);
  1092. SPRITELAYOUT(2048);
  1093.  
  1094.  
  1095. static struct GfxDecodeInfo kungfum_gfxdecodeinfo[] =
  1096. {
  1097.     { REGION_GFX1, 0, &tilelayout_1024,       0, 32 },    /* use colors   0-255 */
  1098.     { REGION_GFX2, 0, &spritelayout_1024,  32*8, 32 },    /* use colors 256-511 */
  1099.     { -1 } /* end of array */
  1100. };
  1101.  
  1102. static struct GfxDecodeInfo battroad_gfxdecodeinfo[] =
  1103. {
  1104.     { REGION_GFX1, 0, &tilelayout_1024,       0, 32 },    /* use colors   0-255 */
  1105.     { REGION_GFX2, 0, &spritelayout_512,    256, 32 },    /* use colors 256-511 */
  1106.     { REGION_GFX3, 0, &battroad_charlayout,    512, 32 },    /* use colors 512-543 */
  1107.     { -1 } /* end of array */
  1108. };
  1109.  
  1110. static struct GfxDecodeInfo ldrun_gfxdecodeinfo[] =
  1111. {
  1112.     { REGION_GFX1, 0, &tilelayout_1024,      0, 32 },    /* use colors   0-255 */
  1113.     { REGION_GFX2, 0, &spritelayout_256,   256, 32 },    /* use colors 256-511 */
  1114.     { -1 } /* end of array */
  1115. };
  1116.  
  1117. static struct GfxDecodeInfo ldrun2_gfxdecodeinfo[] =
  1118. {
  1119.     { REGION_GFX1, 0, &tilelayout_1024,      0, 32 },    /* use colors   0-255 */
  1120.     { REGION_GFX2, 0, &spritelayout_512,   256, 32 },    /* use colors 256-511 */
  1121.     { -1 } /* end of array */
  1122. };
  1123.  
  1124. static struct GfxDecodeInfo ldrun3_gfxdecodeinfo[] =
  1125. {
  1126.     { REGION_GFX1, 0, &tilelayout_2048,      0, 32 },    /* use colors   0-255 */
  1127.     { REGION_GFX2, 0, &spritelayout_512,   256, 32 },    /* use colors 256-511 */
  1128.     { -1 } /* end of array */
  1129. };
  1130.  
  1131. static struct GfxDecodeInfo ldrun4_gfxdecodeinfo[] =
  1132. {
  1133.     { REGION_GFX1, 0, &tilelayout_2048,      0, 32 },    /* use colors   0-255 */
  1134.     { REGION_GFX2, 0, &spritelayout_1024,  256, 32 },    /* use colors 256-511 */
  1135.     { -1 } /* end of array */
  1136. };
  1137.  
  1138. static struct GfxDecodeInfo lotlot_gfxdecodeinfo[] =
  1139. {
  1140.     { REGION_GFX1, 0, &lotlot_charlayout,    0, 32 },    /* use colors   0-255 */
  1141.     { REGION_GFX2, 0, &spritelayout_256,   256, 32 },    /* use colors 256-511 */
  1142.     { REGION_GFX3, 0, &lotlot_charlayout,  512, 32 },    /* use colors 512-767 */
  1143.     { -1 } /* end of array */
  1144. };
  1145.  
  1146. static struct GfxDecodeInfo kidniki_gfxdecodeinfo[] =
  1147. {
  1148.     { REGION_GFX1, 0, &tilelayout_4096,      0, 32 },    /* use colors   0-255 */
  1149.     { REGION_GFX2, 0, &spritelayout_2048,  256, 32 },    /* use colors 256-511 */
  1150.     { REGION_GFX3, 0, &kidniki_charlayout,   0, 32 },    /* use colors   0-255 */
  1151.     { -1 } /* end of array */
  1152. };
  1153.  
  1154. static struct GfxDecodeInfo spelunkr_gfxdecodeinfo[] =
  1155. {
  1156.     { REGION_GFX1, 0, &tilelayout_4096,         0, 32 },    /* use colors   0-255 */
  1157.     { REGION_GFX2, 0, &spritelayout_1024,  256, 32 },    /* use colors 256-511 */
  1158.     { REGION_GFX3, 0, &spelunk2_charlayout,  0, 32 },    /* use colors   0-255 */
  1159.     { -1 } /* end of array */
  1160. };
  1161.  
  1162. static struct GfxDecodeInfo spelunk2_gfxdecodeinfo[] =
  1163. {
  1164.     { REGION_GFX1, 0, &tilelayout_4096,         0, 64 },    /* use colors   0-511 */
  1165.     { REGION_GFX2, 0, &spritelayout_1024,  512, 32 },    /* use colors 512-767 */
  1166.     { REGION_GFX3, 0, &spelunk2_charlayout,  0, 64 },    /* use colors   0-511 */
  1167.     { -1 } /* end of array */
  1168. };
  1169.  
  1170.  
  1171.  
  1172. #define MACHINE_DRIVER(GAMENAME,READPORT,VISIBLEMINX,VISIBLEMAXX,COLORS,CONVERTCOLOR)        \
  1173.                                                                                              \
  1174. static struct MachineDriver machine_driver_##GAMENAME =                                      \
  1175. {                                                                                            \
  1176.     /* basic machine hardware */                                                             \
  1177.     {                                                                                        \
  1178.         {                                                                                    \
  1179.             CPU_Z80,                                                                         \
  1180.             4000000,    /* 4 Mhz (?) */                                                      \
  1181.             GAMENAME##_readmem,GAMENAME##_writemem,READPORT##_readport,GAMENAME##_writeport, \
  1182.             interrupt,1                                                                      \
  1183.         },                                                                                   \
  1184.         IREM_AUDIO_CPU                                                                       \
  1185.     },                                                                                       \
  1186.     55, 1790, /* frames per second and vblank duration from the Lode Runner manual */        \
  1187.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */ \
  1188.     0,                                                                                       \
  1189.                                                                                              \
  1190.     /* video hardware */                                                                     \
  1191.     64*8, 32*8, { VISIBLEMINX, VISIBLEMAXX, 0*8, 32*8-1 },                                   \
  1192.     GAMENAME##_gfxdecodeinfo,                                                                \
  1193.     COLORS, COLORS,                                                                          \
  1194.     CONVERTCOLOR##_vh_convert_color_prom,                                                    \
  1195.                                                                                              \
  1196.     VIDEO_TYPE_RASTER,                                                                       \
  1197.     0,                                                                                       \
  1198.     GAMENAME##_vh_start,                                                                     \
  1199.     generic_vh_stop,                                                                         \
  1200.     GAMENAME##_vh_screenrefresh,                                                             \
  1201.                                                                                              \
  1202.     /* sound hardware */                                                                     \
  1203.     0,0,0,0,                                                                                 \
  1204.     {                                                                                        \
  1205.         IREM_AUDIO                                                                           \
  1206.     }                                                                                        \
  1207. }
  1208.  
  1209. #define kungfum_readmem ldrun_readmem
  1210. #define kungfum_writeport ldrun_writeport
  1211. #define lotlot_writeport ldrun_writeport
  1212. #define spelunkr_writeport ldrun_writeport
  1213. #define spelunk2_writeport ldrun_writeport
  1214. #define    kungfum_vh_start kidniki_vh_start
  1215. #define    battroad_vh_start kidniki_vh_start
  1216. #define    ldrun2_vh_start ldrun_vh_start
  1217. #define    ldrun3_vh_start ldrun_vh_start
  1218. #define    ldrun4_vh_start ldrun_vh_start
  1219. #define    lotlot_vh_start ldrun_vh_start
  1220. #define    spelunk2_vh_start spelunkr_vh_start
  1221. #define    ldrun2_vh_screenrefresh ldrun_vh_screenrefresh
  1222. #define    ldrun3_vh_screenrefresh ldrun_vh_screenrefresh
  1223.  
  1224. MACHINE_DRIVER(kungfum,  ldrun, 16*8, (64-16)*8-1, 512,irem);
  1225. MACHINE_DRIVER(battroad, ldrun, 16*8, (64-16)*8-1, 544,battroad);
  1226. MACHINE_DRIVER(ldrun,    ldrun,  8*8, (64-8)*8-1,  512,irem);
  1227. MACHINE_DRIVER(ldrun2,   ldrun2, 8*8, (64-8)*8-1,  512,irem);
  1228. MACHINE_DRIVER(ldrun3,   ldrun,  8*8, (64-8)*8-1,  512,irem);
  1229. MACHINE_DRIVER(ldrun4,   ldrun,  8*8, (64-8)*8-1,  512,irem);
  1230. MACHINE_DRIVER(lotlot,   ldrun,  8*8, (64-8)*8-1,  768,irem);
  1231. MACHINE_DRIVER(kidniki,  ldrun,  8*8, (64-8)*8-1,  512,irem);
  1232. MACHINE_DRIVER(spelunkr, ldrun,  8*8, (64-8)*8-1,  512,irem);
  1233. MACHINE_DRIVER(spelunk2, ldrun,  8*8, (64-8)*8-1,  768,spelunk2);
  1234.  
  1235.  
  1236.  
  1237. /***************************************************************************
  1238.  
  1239.   Game driver(s)
  1240.  
  1241. ***************************************************************************/
  1242.  
  1243. ROM_START( kungfum )
  1244.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1245.     ROM_LOAD( "a-4e-c.bin",   0x0000, 0x4000, 0xb6e2d083 )
  1246.     ROM_LOAD( "a-4d-c.bin",   0x4000, 0x4000, 0x7532918e )
  1247.  
  1248.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1249.     ROM_LOAD( "a-3e-.bin",    0xa000, 0x2000, 0x58e87ab0 )    /* samples (ADPCM 4-bit) */
  1250.     ROM_LOAD( "a-3f-.bin",    0xc000, 0x2000, 0xc81e31ea )    /* samples (ADPCM 4-bit) */
  1251.     ROM_LOAD( "a-3h-.bin",    0xe000, 0x2000, 0xd99fb995 )
  1252.  
  1253.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1254.     ROM_LOAD( "g-4c-a.bin",   0x00000, 0x2000, 0x6b2cc9c8 )    /* characters */
  1255.     ROM_LOAD( "g-4d-a.bin",   0x02000, 0x2000, 0xc648f558 )
  1256.     ROM_LOAD( "g-4e-a.bin",   0x04000, 0x2000, 0xfbe9276e )
  1257.  
  1258.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1259.     ROM_LOAD( "b-4k-.bin",    0x00000, 0x2000, 0x16fb5150 )    /* sprites */
  1260.     ROM_LOAD( "b-4f-.bin",    0x02000, 0x2000, 0x67745a33 )
  1261.     ROM_LOAD( "b-4l-.bin",    0x04000, 0x2000, 0xbd1c2261 )
  1262.     ROM_LOAD( "b-4h-.bin",    0x06000, 0x2000, 0x8ac5ed3a )
  1263.     ROM_LOAD( "b-3n-.bin",    0x08000, 0x2000, 0x28a213aa )
  1264.     ROM_LOAD( "b-4n-.bin",    0x0a000, 0x2000, 0xd5228df3 )
  1265.     ROM_LOAD( "b-4m-.bin",    0x0c000, 0x2000, 0xb16de4f2 )
  1266.     ROM_LOAD( "b-3m-.bin",    0x0e000, 0x2000, 0xeba0d66b )
  1267.     ROM_LOAD( "b-4c-.bin",    0x10000, 0x2000, 0x01298885 )
  1268.     ROM_LOAD( "b-4e-.bin",    0x12000, 0x2000, 0xc77b87d4 )
  1269.     ROM_LOAD( "b-4d-.bin",    0x14000, 0x2000, 0x6a70615f )
  1270.     ROM_LOAD( "b-4a-.bin",    0x16000, 0x2000, 0x6189d626 )
  1271.  
  1272.     ROM_REGION( 0x0720, REGION_PROMS )
  1273.     ROM_LOAD( "g-1j-.bin",    0x0000, 0x0100, 0x668e6bca )    /* character palette red component */
  1274.     ROM_LOAD( "b-1m-.bin",    0x0100, 0x0100, 0x76c05a9c )    /* sprite palette red component */
  1275.     ROM_LOAD( "g-1f-.bin",    0x0200, 0x0100, 0x964b6495 )    /* character palette green component */
  1276.     ROM_LOAD( "b-1n-.bin",    0x0300, 0x0100, 0x23f06b99 )    /* sprite palette green component */
  1277.     ROM_LOAD( "g-1h-.bin",    0x0400, 0x0100, 0x550563e1 )    /* character palette blue component */
  1278.     ROM_LOAD( "b-1l-.bin",    0x0500, 0x0100, 0x35e45021 )    /* sprite palette blue component */
  1279.     ROM_LOAD( "b-5f-.bin",    0x0600, 0x0020, 0x7a601c3d )    /* sprite height, one entry per 32 */
  1280.                                                             /* sprites. Used at run time! */
  1281.     ROM_LOAD( "b-6f-.bin",    0x0620, 0x0100, 0x82c20d12 )    /* video timing? - same as battroad */
  1282. ROM_END
  1283.  
  1284. ROM_START( kungfud )
  1285.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1286.     ROM_LOAD( "a-4e-d",       0x0000, 0x4000, 0xfc330a46 )
  1287.     ROM_LOAD( "a-4d-d",       0x4000, 0x4000, 0x1b2fd32f )
  1288.  
  1289.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1290.     ROM_LOAD( "a-3e-.bin",    0xa000, 0x2000, 0x58e87ab0 )    /* samples (ADPCM 4-bit) */
  1291.     ROM_LOAD( "a-3f-.bin",    0xc000, 0x2000, 0xc81e31ea )    /* samples (ADPCM 4-bit) */
  1292.     ROM_LOAD( "a-3h-.bin",    0xe000, 0x2000, 0xd99fb995 )
  1293.  
  1294.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1295.     ROM_LOAD( "g-4c-a.bin",   0x00000, 0x2000, 0x6b2cc9c8 )    /* characters */
  1296.     ROM_LOAD( "g-4d-a.bin",   0x02000, 0x2000, 0xc648f558 )
  1297.     ROM_LOAD( "g-4e-a.bin",   0x04000, 0x2000, 0xfbe9276e )
  1298.  
  1299.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1300.     ROM_LOAD( "b-4k-.bin",    0x00000, 0x2000, 0x16fb5150 )    /* sprites */
  1301.     ROM_LOAD( "b-4f-.bin",    0x02000, 0x2000, 0x67745a33 )
  1302.     ROM_LOAD( "b-4l-.bin",    0x04000, 0x2000, 0xbd1c2261 )
  1303.     ROM_LOAD( "b-4h-.bin",    0x06000, 0x2000, 0x8ac5ed3a )
  1304.     ROM_LOAD( "b-3n-.bin",    0x08000, 0x2000, 0x28a213aa )
  1305.     ROM_LOAD( "b-4n-.bin",    0x0a000, 0x2000, 0xd5228df3 )
  1306.     ROM_LOAD( "b-4m-.bin",    0x0c000, 0x2000, 0xb16de4f2 )
  1307.     ROM_LOAD( "b-3m-.bin",    0x0e000, 0x2000, 0xeba0d66b )
  1308.     ROM_LOAD( "b-4c-.bin",    0x10000, 0x2000, 0x01298885 )
  1309.     ROM_LOAD( "b-4e-.bin",    0x12000, 0x2000, 0xc77b87d4 )
  1310.     ROM_LOAD( "b-4d-.bin",    0x14000, 0x2000, 0x6a70615f )
  1311.     ROM_LOAD( "b-4a-.bin",    0x16000, 0x2000, 0x6189d626 )
  1312.  
  1313.     ROM_REGION( 0x0720, REGION_PROMS )
  1314.     ROM_LOAD( "g-1j-.bin",    0x0000, 0x0100, 0x668e6bca )    /* character palette red component */
  1315.     ROM_LOAD( "b-1m-.bin",    0x0100, 0x0100, 0x76c05a9c )    /* sprite palette red component */
  1316.     ROM_LOAD( "g-1f-.bin",    0x0200, 0x0100, 0x964b6495 )    /* character palette green component */
  1317.     ROM_LOAD( "b-1n-.bin",    0x0300, 0x0100, 0x23f06b99 )    /* sprite palette green component */
  1318.     ROM_LOAD( "g-1h-.bin",    0x0400, 0x0100, 0x550563e1 )    /* character palette blue component */
  1319.     ROM_LOAD( "b-1l-.bin",    0x0500, 0x0100, 0x35e45021 )    /* sprite palette blue component */
  1320.     ROM_LOAD( "b-5f-.bin",    0x0600, 0x0020, 0x7a601c3d )    /* sprite height, one entry per 32 */
  1321.                                                             /* sprites. Used at run time! */
  1322.     ROM_LOAD( "b-6f-.bin",    0x0620, 0x0100, 0x82c20d12 )    /* video timing? - same as battroad */
  1323. ROM_END
  1324.  
  1325. ROM_START( spartanx )
  1326.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1327.     ROM_LOAD( "a-4e-c-j.bin", 0x0000, 0x4000, 0x32a0a9a6 )
  1328.     ROM_LOAD( "a-4d-c-j.bin", 0x4000, 0x4000, 0x3173ea78 )
  1329.  
  1330.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1331.     ROM_LOAD( "a-3e-.bin",    0xa000, 0x2000, 0x58e87ab0 )    /* samples (ADPCM 4-bit) */
  1332.     ROM_LOAD( "a-3f-.bin",    0xc000, 0x2000, 0xc81e31ea )    /* samples (ADPCM 4-bit) */
  1333.     ROM_LOAD( "a-3h-.bin",    0xe000, 0x2000, 0xd99fb995 )
  1334.  
  1335.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1336.     ROM_LOAD( "g-4c-a-j.bin", 0x00000, 0x2000, 0x8af9c5a6 )    /* characters */
  1337.     ROM_LOAD( "g-4d-a-j.bin", 0x02000, 0x2000, 0xb8300c72 )
  1338.     ROM_LOAD( "g-4e-a-j.bin", 0x04000, 0x2000, 0xb50429cd )
  1339.  
  1340.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1341.     ROM_LOAD( "b-4k-.bin",    0x00000, 0x2000, 0x16fb5150 )    /* sprites */
  1342.     ROM_LOAD( "b-4f-.bin",    0x02000, 0x2000, 0x67745a33 )
  1343.     ROM_LOAD( "b-4l-.bin",    0x04000, 0x2000, 0xbd1c2261 )
  1344.     ROM_LOAD( "b-4h-.bin",    0x06000, 0x2000, 0x8ac5ed3a )
  1345.     ROM_LOAD( "b-3n-.bin",    0x08000, 0x2000, 0x28a213aa )
  1346.     ROM_LOAD( "b-4n-.bin",    0x0a000, 0x2000, 0xd5228df3 )
  1347.     ROM_LOAD( "b-4m-.bin",    0x0c000, 0x2000, 0xb16de4f2 )
  1348.     ROM_LOAD( "b-3m-.bin",    0x0e000, 0x2000, 0xeba0d66b )
  1349.     ROM_LOAD( "b-4c-.bin",    0x10000, 0x2000, 0x01298885 )
  1350.     ROM_LOAD( "b-4e-.bin",    0x12000, 0x2000, 0xc77b87d4 )
  1351.     ROM_LOAD( "b-4d-.bin",    0x14000, 0x2000, 0x6a70615f )
  1352.     ROM_LOAD( "b-4a-.bin",    0x16000, 0x2000, 0x6189d626 )
  1353.  
  1354.     ROM_REGION( 0x0720, REGION_PROMS )
  1355.     ROM_LOAD( "g-1j-.bin",    0x0000, 0x0100, 0x668e6bca )    /* character palette red component */
  1356.     ROM_LOAD( "b-1m-.bin",    0x0100, 0x0100, 0x76c05a9c )    /* sprite palette red component */
  1357.     ROM_LOAD( "g-1f-.bin",    0x0200, 0x0100, 0x964b6495 )    /* character palette green component */
  1358.     ROM_LOAD( "b-1n-.bin",    0x0300, 0x0100, 0x23f06b99 )    /* sprite palette green component */
  1359.     ROM_LOAD( "g-1h-.bin",    0x0400, 0x0100, 0x550563e1 )    /* character palette blue component */
  1360.     ROM_LOAD( "b-1l-.bin",    0x0500, 0x0100, 0x35e45021 )    /* sprite palette blue component */
  1361.     ROM_LOAD( "b-5f-.bin",    0x0600, 0x0020, 0x7a601c3d )    /* sprite height, one entry per 32 */
  1362.                                                             /* sprites. Used at run time! */
  1363.     ROM_LOAD( "b-6f-.bin",    0x0620, 0x0100, 0x82c20d12 )    /* video timing? - same as battroad */
  1364. ROM_END
  1365.  
  1366. ROM_START( kungfub )
  1367.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1368.     ROM_LOAD( "c5.5h",        0x0000, 0x4000, 0x5d8e791d )
  1369.     ROM_LOAD( "c4.5k",        0x4000, 0x4000, 0x4000e2b8 )
  1370.  
  1371.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1372.     ROM_LOAD( "a-3e-.bin",    0xa000, 0x2000, 0x58e87ab0 )    /* samples (ADPCM 4-bit) */
  1373.     ROM_LOAD( "a-3f-.bin",    0xc000, 0x2000, 0xc81e31ea )    /* samples (ADPCM 4-bit) */
  1374.     ROM_LOAD( "a-3h-.bin",    0xe000, 0x2000, 0xd99fb995 )
  1375.  
  1376.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1377.     ROM_LOAD( "g-4c-a.bin",   0x00000, 0x2000, 0x6b2cc9c8 )    /* characters */
  1378.     ROM_LOAD( "g-4d-a.bin",   0x02000, 0x2000, 0xc648f558 )
  1379.     ROM_LOAD( "g-4e-a.bin",   0x04000, 0x2000, 0xfbe9276e )
  1380.  
  1381.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1382.     ROM_LOAD( "b-4k-.bin",    0x00000, 0x2000, 0x16fb5150 )    /* sprites */
  1383.     ROM_LOAD( "b-4f-.bin",    0x02000, 0x2000, 0x67745a33 )
  1384.     ROM_LOAD( "b-4l-.bin",    0x04000, 0x2000, 0xbd1c2261 )
  1385.     ROM_LOAD( "b-4h-.bin",    0x06000, 0x2000, 0x8ac5ed3a )
  1386.     ROM_LOAD( "b-3n-.bin",    0x08000, 0x2000, 0x28a213aa )
  1387.     ROM_LOAD( "b-4n-.bin",    0x0a000, 0x2000, 0xd5228df3 )
  1388.     ROM_LOAD( "b-4m-.bin",    0x0c000, 0x2000, 0xb16de4f2 )
  1389.     ROM_LOAD( "b-3m-.bin",    0x0e000, 0x2000, 0xeba0d66b )
  1390.     ROM_LOAD( "b-4c-.bin",    0x10000, 0x2000, 0x01298885 )
  1391.     ROM_LOAD( "b-4e-.bin",    0x12000, 0x2000, 0xc77b87d4 )
  1392.     ROM_LOAD( "b-4d-.bin",    0x14000, 0x2000, 0x6a70615f )
  1393.     ROM_LOAD( "b-4a-.bin",    0x16000, 0x2000, 0x6189d626 )
  1394.  
  1395.     ROM_REGION( 0x0720, REGION_PROMS )
  1396.     ROM_LOAD( "g-1j-.bin",    0x0000, 0x0100, 0x668e6bca )    /* character palette red component */
  1397.     ROM_LOAD( "b-1m-.bin",    0x0100, 0x0100, 0x76c05a9c )    /* sprite palette red component */
  1398.     ROM_LOAD( "g-1f-.bin",    0x0200, 0x0100, 0x964b6495 )    /* character palette green component */
  1399.     ROM_LOAD( "b-1n-.bin",    0x0300, 0x0100, 0x23f06b99 )    /* sprite palette green component */
  1400.     ROM_LOAD( "g-1h-.bin",    0x0400, 0x0100, 0x550563e1 )    /* character palette blue component */
  1401.     ROM_LOAD( "b-1l-.bin",    0x0500, 0x0100, 0x35e45021 )    /* sprite palette blue component */
  1402.     ROM_LOAD( "b-5f-.bin",    0x0600, 0x0020, 0x7a601c3d )    /* sprite height, one entry per 32 */
  1403.                                                             /* sprites. Used at run time! */
  1404.     ROM_LOAD( "b-6f-.bin",    0x0620, 0x0100, 0x82c20d12 )    /* video timing? - same as battroad */
  1405. ROM_END
  1406.  
  1407. ROM_START( kungfub2 )
  1408.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1409.     ROM_LOAD( "kf4",          0x0000, 0x4000, 0x3f65313f )
  1410.     ROM_LOAD( "kf5",          0x4000, 0x4000, 0x9ea325f3 )
  1411.  
  1412.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1413.     ROM_LOAD( "a-3e-.bin",    0xa000, 0x2000, 0x58e87ab0 )    /* samples (ADPCM 4-bit) */
  1414.     ROM_LOAD( "a-3f-.bin",    0xc000, 0x2000, 0xc81e31ea )    /* samples (ADPCM 4-bit) */
  1415.     ROM_LOAD( "a-3h-.bin",    0xe000, 0x2000, 0xd99fb995 )
  1416.  
  1417.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1418.     ROM_LOAD( "g-4c-a.bin",   0x00000, 0x2000, 0x6b2cc9c8 )    /* characters */
  1419.     ROM_LOAD( "g-4d-a.bin",   0x02000, 0x2000, 0xc648f558 )
  1420.     ROM_LOAD( "g-4e-a.bin",   0x04000, 0x2000, 0xfbe9276e )
  1421.  
  1422.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1423.     ROM_LOAD( "b-4k-.bin",    0x00000, 0x2000, 0x16fb5150 )    /* sprites */
  1424.     ROM_LOAD( "b-4f-.bin",    0x02000, 0x2000, 0x67745a33 )
  1425.     ROM_LOAD( "b-4l-.bin",    0x04000, 0x2000, 0xbd1c2261 )
  1426.     ROM_LOAD( "b-4h-.bin",    0x06000, 0x2000, 0x8ac5ed3a )
  1427.     ROM_LOAD( "b-3n-.bin",    0x08000, 0x2000, 0x28a213aa )
  1428.     ROM_LOAD( "b-4n-.bin",    0x0a000, 0x2000, 0xd5228df3 )
  1429.     ROM_LOAD( "b-4m-.bin",    0x0c000, 0x2000, 0xb16de4f2 )
  1430.     ROM_LOAD( "b-3m-.bin",    0x0e000, 0x2000, 0xeba0d66b )
  1431.     ROM_LOAD( "b-4c-.bin",    0x10000, 0x2000, 0x01298885 )
  1432.     ROM_LOAD( "b-4e-.bin",    0x12000, 0x2000, 0xc77b87d4 )
  1433.     ROM_LOAD( "b-4d-.bin",    0x14000, 0x2000, 0x6a70615f )
  1434.     ROM_LOAD( "b-4a-.bin",    0x16000, 0x2000, 0x6189d626 )
  1435.  
  1436.     ROM_REGION( 0x0720, REGION_PROMS )
  1437.     ROM_LOAD( "g-1j-.bin",    0x0000, 0x0100, 0x668e6bca )    /* character palette red component */
  1438.     ROM_LOAD( "b-1m-.bin",    0x0100, 0x0100, 0x76c05a9c )    /* sprite palette red component */
  1439.     ROM_LOAD( "g-1f-.bin",    0x0200, 0x0100, 0x964b6495 )    /* character palette green component */
  1440.     ROM_LOAD( "b-1n-.bin",    0x0300, 0x0100, 0x23f06b99 )    /* sprite palette green component */
  1441.     ROM_LOAD( "g-1h-.bin",    0x0400, 0x0100, 0x550563e1 )    /* character palette blue component */
  1442.     ROM_LOAD( "b-1l-.bin",    0x0500, 0x0100, 0x35e45021 )    /* sprite palette blue component */
  1443.     ROM_LOAD( "b-5f-.bin",    0x0600, 0x0020, 0x7a601c3d )    /* sprite height, one entry per 32 */
  1444.                                                             /* sprites. Used at run time! */
  1445.     ROM_LOAD( "b-6f-.bin",    0x0620, 0x0100, 0x82c20d12 )    /* video timing? - same as battroad */
  1446. ROM_END
  1447.  
  1448. ROM_START( battroad )
  1449.     ROM_REGION( 0x1e000, REGION_CPU1 )    /* 64k for code */
  1450.     ROM_LOAD( "br-a-4e.b",    0x00000, 0x2000, 0x9bf14768 )
  1451.     ROM_LOAD( "br-a-4d.b",    0x02000, 0x2000, 0x39ca1627 )
  1452.     ROM_LOAD( "br-a-4b.b",    0x04000, 0x2000, 0x1865bb22 )
  1453.     ROM_LOAD( "br-a-4a",    0x06000, 0x2000, 0x65b61c21 )
  1454.     ROM_LOAD( "br-c-7c",    0x10000, 0x2000, 0x2e1eca52 )    /* banked at a000-bfff */
  1455.     ROM_LOAD( "br-c-7l",    0x12000, 0x2000, 0xf2178578 )
  1456.     ROM_LOAD( "br-c-7d",    0x14000, 0x2000, 0x3aa9fa30 )
  1457.     ROM_LOAD( "br-c-7b",    0x16000, 0x2000, 0x0b31b90b )
  1458.     ROM_LOAD( "br-c-7a",    0x18000, 0x2000, 0xec3b0080 )
  1459.     ROM_LOAD( "br-c-7k",    0x1c000, 0x2000, 0xedc75f7f )
  1460.  
  1461.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1462.     ROM_LOAD( "br-a-3e",     0xa000, 0x2000, 0xa7140871 )
  1463.     ROM_LOAD( "br-a-3f",     0xc000, 0x2000, 0x1bb51b30 )
  1464.     ROM_LOAD( "br-a-3h",     0xe000, 0x2000, 0xafb3e083 )
  1465.  
  1466.     ROM_REGION( 0x06000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1467.     ROM_LOAD( "br-c-6h",    0x00000, 0x2000, 0xca50841c )    /* tiles */
  1468.     ROM_LOAD( "br-c-6n",    0x02000, 0x2000, 0x7d53163a )
  1469.     ROM_LOAD( "br-c-6k",    0x04000, 0x2000, 0x5951e12a )
  1470.  
  1471.     ROM_REGION( 0x0c000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1472.     ROM_LOAD( "br-b-4k.a",    0x00000, 0x2000, 0xd3c5e85b )    /* sprites */
  1473.     ROM_LOAD( "br-b-4f.a",    0x02000, 0x2000, 0x4354232a )
  1474.     ROM_LOAD( "br-b-3n.a",    0x04000, 0x2000, 0x2668dbef )
  1475.     ROM_LOAD( "br-b-4n.a",    0x06000, 0x2000, 0xc719a324 )
  1476.     ROM_LOAD( "br-b-4c.a",    0x08000, 0x2000, 0x0b3193bf )
  1477.     ROM_LOAD( "br-b-4e.a",    0x0a000, 0x2000, 0x3662e8fb )
  1478.  
  1479.     ROM_REGION( 0x04000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1480.     ROM_LOAD( "br-c-1b",    0x00000, 0x2000, 0x8088911e )    /* characters */
  1481.     ROM_LOAD( "br-c-1c",    0x02000, 0x2000, 0x3d78b653 )
  1482.  
  1483.     ROM_REGION( 0x0740, REGION_PROMS )
  1484.     ROM_LOAD( "br-c-3j",     0x0000, 0x0100, 0xaceaed79 )    /* tile palette red component */
  1485.     ROM_LOAD( "br-b-1m",     0x0100, 0x0100, 0x3bd30c7d )    /* sprite palette red component */
  1486.     ROM_LOAD( "br-c-3l",     0x0200, 0x0100, 0x7cf6f380 )    /* tile palette green component */
  1487.     ROM_LOAD( "br-b-1n",     0x0300, 0x0100, 0xb7f3dc3b )    /* sprite palette green component */
  1488.     ROM_LOAD( "br-c-3k",     0x0400, 0x0100, 0xd90e4a54 )    /* tile palette blue component */
  1489.     ROM_LOAD( "br-b-1l",     0x0500, 0x0100, 0x5271c7d8 )    /* sprite palette blue component */
  1490.     ROM_LOAD( "br-c-1j",     0x0600, 0x0020, 0x78eb5d77 )    /* character palette */
  1491.     ROM_LOAD( "br-b-5p",     0x0620, 0x0020, 0xce746937 )    /* sprite height, one entry per 32 */
  1492.                                                             /* sprites. Used at run time! */
  1493.     ROM_LOAD( "br-b-6f",     0x0640, 0x0100, 0x82c20d12 )    /* video timing? - same as kungfum */
  1494. ROM_END
  1495.  
  1496. ROM_START( ldrun )
  1497.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1498.     ROM_LOAD( "lr-a-4e",      0x0000, 0x2000, 0x5d7e2a4d )
  1499.     ROM_LOAD( "lr-a-4d",      0x2000, 0x2000, 0x96f20473 )
  1500.     ROM_LOAD( "lr-a-4b",      0x4000, 0x2000, 0xb041c4a9 )
  1501.     ROM_LOAD( "lr-a-4a",      0x6000, 0x2000, 0x645e42aa )
  1502.  
  1503.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1504.     ROM_LOAD( "lr-a-3f",      0xc000, 0x2000, 0x7a96accd )
  1505.     ROM_LOAD( "lr-a-3h",      0xe000, 0x2000, 0x3f7f3939 )
  1506.  
  1507.     ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1508.     ROM_LOAD( "lr-e-2d",      0x0000, 0x2000, 0x24f9b58d )    /* characters */
  1509.     ROM_LOAD( "lr-e-2j",      0x2000, 0x2000, 0x43175e08 )
  1510.     ROM_LOAD( "lr-e-2f",      0x4000, 0x2000, 0xe0317124 )
  1511.  
  1512.     ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1513.     ROM_LOAD( "lr-b-4k",      0x0000, 0x2000, 0x8141403e )    /* sprites */
  1514.     ROM_LOAD( "lr-b-3n",      0x2000, 0x2000, 0x55154154 )
  1515.     ROM_LOAD( "lr-b-4c",      0x4000, 0x2000, 0x924e34d0 )
  1516.  
  1517.     ROM_REGION( 0x0720, REGION_PROMS )
  1518.     ROM_LOAD( "lr-e-3m",      0x0000, 0x0100, 0x53040416 )    /* character palette red component */
  1519.     ROM_LOAD( "lr-b-1m",      0x0100, 0x0100, 0x4bae1c25 )    /* sprite palette red component */
  1520.     ROM_LOAD( "lr-e-3l",      0x0200, 0x0100, 0x67786037 )    /* character palette green component */
  1521.     ROM_LOAD( "lr-b-1n",      0x0300, 0x0100, 0x9cd3db94 )    /* sprite palette green component */
  1522.     ROM_LOAD( "lr-e-3n",      0x0400, 0x0100, 0x5b716837 )    /* character palette blue component */
  1523.     ROM_LOAD( "lr-b-1l",      0x0500, 0x0100, 0x08d8cf9a )    /* sprite palette blue component */
  1524.     ROM_LOAD( "lr-b-5p",      0x0600, 0x0020, 0xe01f69e2 )    /* sprite height, one entry per 32 */
  1525.                                                             /* sprites. Used at run time! */
  1526.     ROM_LOAD( "lr-b-6f",      0x0620, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1527. ROM_END
  1528.  
  1529. ROM_START( ldruna )
  1530.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1531.     ROM_LOAD( "roma4c",       0x0000, 0x2000, 0x279421e1 )
  1532.     ROM_LOAD( "lr-a-4d",      0x2000, 0x2000, 0x96f20473 )
  1533.     ROM_LOAD( "roma4b",       0x4000, 0x2000, 0x3c464bad )
  1534.     ROM_LOAD( "roma4a",       0x6000, 0x2000, 0x899df8e0 )
  1535.  
  1536.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1537.     ROM_LOAD( "lr-a-3f",      0xc000, 0x2000, 0x7a96accd )
  1538.     ROM_LOAD( "lr-a-3h",      0xe000, 0x2000, 0x3f7f3939 )
  1539.  
  1540.     ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1541.     ROM_LOAD( "lr-e-2d",      0x0000, 0x2000, 0x24f9b58d )    /* characters */
  1542.     ROM_LOAD( "lr-e-2j",      0x2000, 0x2000, 0x43175e08 )
  1543.     ROM_LOAD( "lr-e-2f",      0x4000, 0x2000, 0xe0317124 )
  1544.  
  1545.     ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1546.     ROM_LOAD( "lr-b-4k",      0x0000, 0x2000, 0x8141403e )    /* sprites */
  1547.     ROM_LOAD( "lr-b-3n",      0x2000, 0x2000, 0x55154154 )
  1548.     ROM_LOAD( "lr-b-4c",      0x4000, 0x2000, 0x924e34d0 )
  1549.  
  1550.     ROM_REGION( 0x0720, REGION_PROMS )
  1551.     ROM_LOAD( "lr-e-3m",      0x0000, 0x0100, 0x53040416 )    /* character palette red component */
  1552.     ROM_LOAD( "lr-b-1m",      0x0100, 0x0100, 0x4bae1c25 )    /* sprite palette red component */
  1553.     ROM_LOAD( "lr-e-3l",      0x0200, 0x0100, 0x67786037 )    /* character palette green component */
  1554.     ROM_LOAD( "lr-b-1n",      0x0300, 0x0100, 0x9cd3db94 )    /* sprite palette green component */
  1555.     ROM_LOAD( "lr-e-3n",      0x0400, 0x0100, 0x5b716837 )    /* character palette blue component */
  1556.     ROM_LOAD( "lr-b-1l",      0x0500, 0x0100, 0x08d8cf9a )    /* sprite palette blue component */
  1557.     ROM_LOAD( "lr-b-5p",      0x0600, 0x0020, 0xe01f69e2 )    /* sprite height, one entry per 32 */
  1558.                                                             /* sprites. Used at run time! */
  1559.     ROM_LOAD( "lr-b-6f",      0x0620, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1560. ROM_END
  1561.  
  1562. ROM_START( ldrun2 )
  1563.     ROM_REGION( 0x14000, REGION_CPU1 )    /* 64k for code + 16k for banks */
  1564.     ROM_LOAD( "lr2-a-4e.a",   0x00000, 0x2000, 0x22313327 )
  1565.     ROM_LOAD( "lr2-a-4d",     0x02000, 0x2000, 0xef645179 )
  1566.     ROM_LOAD( "lr2-a-4a.a",   0x04000, 0x2000, 0xb11ddf59 )
  1567.     ROM_LOAD( "lr2-a-4a",     0x06000, 0x2000, 0x470cc8a1 )
  1568.     ROM_LOAD( "lr2-h-1c.a",   0x10000, 0x2000, 0x7ebcadbc )    /* banked at 8000-9fff */
  1569.     ROM_LOAD( "lr2-h-1d.a",   0x12000, 0x2000, 0x64cbb7f9 )    /* banked at 8000-9fff */
  1570.  
  1571.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1572.     ROM_LOAD( "lr2-a-3e",     0xa000, 0x2000, 0x853f3898 )
  1573.     ROM_LOAD( "lr2-a-3f",     0xc000, 0x2000, 0x7a96accd )
  1574.     ROM_LOAD( "lr2-a-3h",     0xe000, 0x2000, 0x2a0e83ca )
  1575.  
  1576.     ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1577.     ROM_LOAD( "lr2-h-1e",     0x00000, 0x2000, 0x9d63a8ff )    /* characters */
  1578.     ROM_LOAD( "lr2-h-1j",     0x02000, 0x2000, 0x40332bbd )
  1579.     ROM_LOAD( "lr2-h-1h",     0x04000, 0x2000, 0x9404727d )
  1580.  
  1581.     ROM_REGION( 0xc000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1582.     ROM_LOAD( "lr2-b-4k",     0x00000, 0x2000, 0x79909871 )    /* sprites */
  1583.     ROM_LOAD( "lr2-b-4f",     0x02000, 0x2000, 0x06ba1ef4 )
  1584.     ROM_LOAD( "lr2-b-3n",     0x04000, 0x2000, 0x3cc5893f )
  1585.     ROM_LOAD( "lr2-b-4n",     0x06000, 0x2000, 0x49c12f42 )
  1586.     ROM_LOAD( "lr2-b-4c",     0x08000, 0x2000, 0xfbe6d24c )
  1587.     ROM_LOAD( "lr2-b-4e",     0x0a000, 0x2000, 0x75172d1f )
  1588.  
  1589.     ROM_REGION( 0x0720, REGION_PROMS )
  1590.     ROM_LOAD( "lr2-h-3m",     0x0000, 0x0100, 0x2c5d834b )    /* character palette red component */
  1591.     ROM_LOAD( "lr2-b-1m",     0x0100, 0x0100, 0x4ec9bb3d )    /* sprite palette red component */
  1592.     ROM_LOAD( "lr2-h-3l",     0x0200, 0x0100, 0x3ae69aca )    /* character palette green component */
  1593.     ROM_LOAD( "lr2-b-1n",     0x0300, 0x0100, 0x1daf1fa4 )    /* sprite palette green component */
  1594.     ROM_LOAD( "lr2-h-3n",     0x0400, 0x0100, 0x2b28aec5 )    /* character palette blue component */
  1595.     ROM_LOAD( "lr2-b-1l",     0x0500, 0x0100, 0xc8fb708a )    /* sprite palette blue component */
  1596.     ROM_LOAD( "lr2-b-5p",     0x0600, 0x0020, 0xe01f69e2 )    /* sprite height, one entry per 32 */
  1597.                                                             /* sprites. Used at run time! */
  1598.     ROM_LOAD( "lr2-b-6f",     0x0620, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1599. ROM_END
  1600.  
  1601. ROM_START( ldrun3 )
  1602.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1603.     ROM_LOAD( "lr3-a-4e",     0x0000, 0x4000, 0x5b334e8e )
  1604.     ROM_LOAD( "lr3-a-4d.a",   0x4000, 0x4000, 0xa84bc931 )
  1605.     ROM_LOAD( "lr3-a-4b.a",   0x8000, 0x4000, 0xbe09031d )
  1606.  
  1607.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1608.     ROM_LOAD( "lr3-a-3d",     0x8000, 0x4000, 0x28be68cd )
  1609.     ROM_LOAD( "lr3-a-3f",     0xc000, 0x4000, 0xcb7186b7 )
  1610.  
  1611.     ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1612.     ROM_LOAD( "lr3-n-2a",     0x00000, 0x4000, 0xf9b74dee )    /* characters */
  1613.     ROM_LOAD( "lr3-n-2c",     0x04000, 0x4000, 0xfef707ba )
  1614.     ROM_LOAD( "lr3-n-2b",     0x08000, 0x4000, 0xaf3d27b9 )
  1615.  
  1616.     ROM_REGION( 0xc000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1617.     ROM_LOAD( "lr3-b-4k",     0x00000, 0x4000, 0x63f070c7 )    /* sprites */
  1618.     ROM_LOAD( "lr3-b-3n",     0x04000, 0x4000, 0xeab7ad91 )
  1619.     ROM_LOAD( "lr3-b-4c",     0x08000, 0x4000, 0x1a460a46 )
  1620.  
  1621.     ROM_REGION( 0x0820, REGION_PROMS )
  1622.     ROM_LOAD( "lr3-n-2l",     0x0000, 0x0100, 0xe880b86b ) /* character palette red component */
  1623.     ROM_LOAD( "lr3-b-1m",     0x0100, 0x0100, 0xf02d7167 ) /* sprite palette red component */
  1624.     ROM_LOAD( "lr3-n-2k",     0x0200, 0x0100, 0x047ee051 ) /* character palette green component */
  1625.     ROM_LOAD( "lr3-b-1n",     0x0300, 0x0100, 0x9e37f181 ) /* sprite palette green component */
  1626.     ROM_LOAD( "lr3-n-2m",     0x0400, 0x0100, 0x69ad8678 ) /* character palette blue component */
  1627.     ROM_LOAD( "lr3-b-1l",     0x0500, 0x0100, 0x5b11c41d ) /* sprite palette blue component */
  1628.     ROM_LOAD( "lr3-b-5p",     0x0600, 0x0020, 0xe01f69e2 )    /* sprite height, one entry per 32 */
  1629.                                                             /* sprites. Used at run time! */
  1630.     ROM_LOAD( "lr3-n-4f",     0x0620, 0x0100, 0xdf674be9 )    /* unknown */
  1631.     ROM_LOAD( "lr3-b-6f",     0x0720, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1632. ROM_END
  1633.  
  1634. ROM_START( ldrun4 )
  1635.     ROM_REGION( 0x18000, REGION_CPU1 )    /* 64k for code + 32k for banked ROM */
  1636.     ROM_LOAD( "lr4-a-4e",     0x00000, 0x4000, 0x5383e9bf )
  1637.     ROM_LOAD( "lr4-a-4d.c",   0x04000, 0x4000, 0x298afa36 )
  1638.     ROM_LOAD( "lr4-v-4k",     0x10000, 0x8000, 0x8b248abd )    /* banked at 8000-bfff */
  1639.  
  1640.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1641.     ROM_LOAD( "lr4-a-3d",     0x8000, 0x4000, 0x86c6d445 )
  1642.     ROM_LOAD( "lr4-a-3f",     0xc000, 0x4000, 0x097c6c0a )
  1643.  
  1644.     ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1645.     ROM_LOAD( "lr4-v-2b",     0x00000, 0x4000, 0x4118e60a )    /* characters */
  1646.     ROM_LOAD( "lr4-v-2d",     0x04000, 0x4000, 0x542bb5b5 )
  1647.     ROM_LOAD( "lr4-v-2c",     0x08000, 0x4000, 0xc765266c )
  1648.  
  1649.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1650.     ROM_LOAD( "lr4-b-4k",     0x00000, 0x4000, 0xe7fe620c )    /* sprites */
  1651.     ROM_LOAD( "lr4-b-4f",     0x04000, 0x4000, 0x6f0403db )
  1652.     ROM_LOAD( "lr4-b-3n",     0x08000, 0x4000, 0xad1fba1b )
  1653.     ROM_LOAD( "lr4-b-4n",     0x0c000, 0x4000, 0x0e568fab )
  1654.     ROM_LOAD( "lr4-b-4c",     0x10000, 0x4000, 0x82c53669 )
  1655.     ROM_LOAD( "lr4-b-4e",     0x14000, 0x4000, 0x767a1352 )
  1656.  
  1657.     ROM_REGION( 0x0820, REGION_PROMS )
  1658.     ROM_LOAD( "lr4-v-1m",     0x0000, 0x0100, 0xfe51bf1d ) /* character palette red component */
  1659.     ROM_LOAD( "lr4-b-1m",     0x0100, 0x0100, 0x5d8d17d0 ) /* sprite palette red component */
  1660.     ROM_LOAD( "lr4-v-1n",     0x0200, 0x0100, 0xda0658e5 ) /* character palette green component */
  1661.     ROM_LOAD( "lr4-b-1n",     0x0300, 0x0100, 0xda1129d2 ) /* sprite palette green component */
  1662.     ROM_LOAD( "lr4-v-1p",     0x0400, 0x0100, 0x0df23ebe ) /* character palette blue component */
  1663.     ROM_LOAD( "lr4-b-1l",     0x0500, 0x0100, 0x0d89b692 ) /* sprite palette blue component */
  1664.     ROM_LOAD( "lr4-b-5p",     0x0600, 0x0020, 0xe01f69e2 )    /* sprite height, one entry per 32 */
  1665.                                                             /* sprites. Used at run time! */
  1666.     ROM_LOAD( "lr4-v-4h",     0x0620, 0x0100, 0xdf674be9 )    /* unknown */
  1667.     ROM_LOAD( "lr4-b-6f",     0x0720, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1668. ROM_END
  1669.  
  1670. ROM_START( lotlot )
  1671.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1672.     ROM_LOAD( "lot-a-4e",     0x0000, 0x4000, 0x2913d08f )
  1673.     ROM_LOAD( "lot-a-4d",     0x4000, 0x4000, 0x0443095f )
  1674.  
  1675.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU (6803) */
  1676.     ROM_LOAD( "lot-a-3h",     0xe000, 0x2000, 0x0781cee7 )
  1677.  
  1678.     ROM_REGION( 0x6000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1679.     ROM_LOAD( "lot-k-4a",     0x00000, 0x2000, 0x1b3695f4 )    /* tiles */
  1680.     ROM_LOAD( "lot-k-4c",     0x02000, 0x2000, 0xbd2b0730 )
  1681.     ROM_LOAD( "lot-k-4b",     0x04000, 0x2000, 0x930ddd55 )
  1682.  
  1683.     ROM_REGION( 0x6000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1684.     ROM_LOAD( "lot-b-4k",     0x00000, 0x2000, 0xfd27cb90 )    /* sprites */
  1685.     ROM_LOAD( "lot-b-3n",     0x02000, 0x2000, 0xbd486fff )
  1686.     ROM_LOAD( "lot-b-4c",     0x04000, 0x2000, 0x3026ee6c )
  1687.  
  1688.     ROM_REGION( 0x6000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1689.     ROM_LOAD( "lot-k-4p",     0x00000, 0x2000, 0x3b7d95ba )    /* chars */
  1690.     ROM_LOAD( "lot-k-4l",     0x02000, 0x2000, 0xf98dca1f )
  1691.     ROM_LOAD( "lot-k-4n",     0x04000, 0x2000, 0xf0cd76a5 )
  1692.  
  1693.     ROM_REGION( 0x0e20, REGION_PROMS )
  1694.     ROM_LOAD( "lot-k-2f",     0x0000, 0x0100, 0xb820a05e ) /* tile palette red component */
  1695.     ROM_LOAD( "lot-b-1m",     0x0100, 0x0100, 0xc146461d ) /* sprite palette red component */
  1696.     ROM_LOAD( "lot-k-2l",     0x0200, 0x0100, 0xac3e230d ) /* character palette red component */
  1697.     ROM_LOAD( "lot-k-2e",     0x0300, 0x0100, 0x9b1fa005 ) /* tile palette green component */
  1698.     ROM_LOAD( "lot-b-1n",     0x0400, 0x0100, 0x01e07db6 ) /* sprite palette green component */
  1699.     ROM_LOAD( "lot-k-2k",     0x0500, 0x0100, 0x1811ad2b ) /* character palette green component */
  1700.     ROM_LOAD( "lot-k-2d",     0x0600, 0x0100, 0x315ed9a8 ) /* tile palette blue component */
  1701.     ROM_LOAD( "lot-b-1l",     0x0700, 0x0100, 0x8b6fcde3 ) /* sprite palette blue component */
  1702.     ROM_LOAD( "lot-k-2j",     0x0800, 0x0100, 0xe791ef2a ) /* character palette blue component */
  1703.     ROM_LOAD( "lot-b-5p",     0x0900, 0x0020, 0x110b21fd )    /* sprite height, one entry per 32 */
  1704.                                                             /* sprites. Used at run time! */
  1705.     ROM_LOAD( "lot-k-7e",     0x0920, 0x0200, 0x6cef0fbd )    /* unknown */
  1706.     ROM_LOAD( "lot-k-7h",     0x0b20, 0x0200, 0x04442bee )    /* unknown */
  1707.     ROM_LOAD( "lot-b-6f",     0x0d20, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1708. ROM_END
  1709.  
  1710. ROM_START( kidniki )
  1711.     ROM_REGION( 0x30000, REGION_CPU1 )    /* main CPU */
  1712.     ROM_LOAD( "dr04.4e",      0x00000, 0x04000, 0x80431858 )
  1713.     ROM_LOAD( "dr03.4cd",     0x04000, 0x04000, 0xdba20934 )
  1714.     ROM_LOAD( "dr11.8k",      0x10000, 0x08000, 0x04d82d93 )    /* banked at 8000-9fff */
  1715.     ROM_LOAD( "dr12.8l",      0x18000, 0x08000, 0xc0b255fd )
  1716.     ROM_CONTINUE(             0x28000, 0x08000 )
  1717.  
  1718.     ROM_REGION( 0x10000, REGION_CPU2 )    /* sound CPU */
  1719.     ROM_LOAD( "dr00.3a",      0x4000, 0x04000, 0x458309f7 )
  1720.     ROM_LOAD( "dr01.3cd",     0x8000, 0x04000, 0xe66897bd )
  1721.     ROM_LOAD( "dr02.3f",      0xc000, 0x04000, 0xf9e31e26 ) /* 6803 code */
  1722.  
  1723.     ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1724.     ROM_LOAD( "dr06.2b",      0x00000, 0x8000, 0x4d9a970f )    /* tiles */
  1725.     ROM_LOAD( "dr07.2dc",     0x08000, 0x8000, 0xab59a4c4 )
  1726.     ROM_LOAD( "dr05.2a",      0x10000, 0x8000, 0x2e6dad0c )
  1727.  
  1728.     ROM_REGION( 0x30000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1729.     ROM_LOAD( "dr21.4k",      0x00000, 0x4000, 0xa06cea9a )    /* sprites */
  1730.     ROM_LOAD( "dr19.4f",      0x04000, 0x4000, 0xb34605ad )
  1731.     ROM_LOAD( "dr22.4l",      0x08000, 0x4000, 0x41303de8 )
  1732.     ROM_LOAD( "dr20.4jh",     0x0c000, 0x4000, 0x5fbe6f61 )
  1733.     ROM_LOAD( "dr14.3p",      0x10000, 0x4000, 0x76cfbcbc )
  1734.     ROM_LOAD( "dr24.4p",      0x14000, 0x4000, 0xd51c8db5 )
  1735.     ROM_LOAD( "dr23.4nm",     0x18000, 0x4000, 0x03469df8 )
  1736.     ROM_LOAD( "dr13.3nm",     0x1c000, 0x4000, 0xd5c3dfe0 )
  1737.     ROM_LOAD( "dr16.4cb",     0x20000, 0x4000, 0xf1d1bb93 )
  1738.     ROM_LOAD( "dr18.4e",      0x24000, 0x4000, 0xedb7f25b )
  1739.     ROM_LOAD( "dr17.4dc",     0x28000, 0x4000, 0x4fb87868 )
  1740.     ROM_LOAD( "dr15.4a",      0x2c000, 0x4000, 0xe0b88de5 )
  1741.  
  1742.     ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1743.     ROM_LOAD( "dr08.4l",      0x00000, 0x4000, 0x32d50643 )    /* chars */
  1744.     ROM_LOAD( "dr09.4m",      0x04000, 0x4000, 0x17df6f95 )
  1745.     ROM_LOAD( "dr10.4n",      0x08000, 0x4000, 0x820ce252 )
  1746.  
  1747.     ROM_REGION( 0x0920, REGION_PROMS )
  1748.     ROM_LOAD( "dr25.3f",      0x0000, 0x0100, 0x8e91430b )    /* character palette red component */
  1749.     ROM_LOAD( "dr30.1m",      0x0100, 0x0100, 0x28c73263 )    /* sprite palette red component */
  1750.     ROM_LOAD( "dr26.3h",      0x0200, 0x0100, 0xb563b93f )    /* character palette green component */
  1751.     ROM_LOAD( "dr31.1n",      0x0300, 0x0100, 0x3529210e )    /* sprite palette green component */
  1752.     ROM_LOAD( "dr27.3j",      0x0400, 0x0100, 0x70d668ef )    /* character palette blue component */
  1753.     ROM_LOAD( "dr29.1l",      0x0500, 0x0100, 0x1173a754 )    /* sprite palette blue component */
  1754.     ROM_LOAD( "dr32.5p",      0x0600, 0x0020, 0x11cd1f2e )    /* sprite height, one entry per 32 */
  1755.                                                             /* sprites. Used at run time! */
  1756.     ROM_LOAD( "dr28.8f",      0x0620, 0x0200, 0x6cef0fbd )    /* unknown */
  1757.     ROM_LOAD( "dr33.6f",      0x0820, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1758. ROM_END
  1759.  
  1760.  
  1761. ROM_START( yanchamr )
  1762.     ROM_REGION( 0x30000, REGION_CPU1 )    /* main CPU */
  1763.     ROM_LOAD( "ky_a-4e-.bin", 0x00000, 0x04000, 0xc73ad2d6 )
  1764.     ROM_LOAD( "ky_a-4d-.bin", 0x04000, 0x04000, 0x401af828 )
  1765.     ROM_LOAD( "ky_t-8k-.bin", 0x10000, 0x08000, 0xe967de88 )    /* banked at 8000-9fff */
  1766.     ROM_LOAD( "ky_t-8l-.bin", 0x18000, 0x08000, 0xa929110b )
  1767. /*    ROM_CONTINUE(             0x28000, 0x08000 ) */
  1768.  
  1769.     ROM_REGION( 0x10000, REGION_CPU2 )    /* sound CPU */
  1770.     ROM_LOAD( "ky_a-3a-.bin", 0x4000, 0x04000, 0xcb365f3b )
  1771.     ROM_LOAD( "dr01.3cd",     0x8000, 0x04000, 0xe66897bd )
  1772.     ROM_LOAD( "dr02.3f",      0xc000, 0x04000, 0xf9e31e26 ) /* 6803 code */
  1773.  
  1774.     ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1775.     ROM_LOAD( "ky_t-2c-.bin", 0x00000, 0x8000, 0xcb9761fc )    /* tiles */
  1776.     ROM_LOAD( "ky_t-2d-.bin", 0x08000, 0x8000, 0x59732741 )
  1777.     ROM_LOAD( "ky_t-2a-.bin", 0x10000, 0x8000, 0x0370fd82 )
  1778.  
  1779.     ROM_REGION( 0x30000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1780.     ROM_LOAD( "ky_b-4k-.bin", 0x00000, 0x4000, 0x263a9d10 )    /* sprites */
  1781.     ROM_LOAD( "ky_b-4f-.bin", 0x04000, 0x4000, 0x86e3d4a8 )
  1782.     ROM_LOAD( "ky_b-4l-.bin", 0x08000, 0x4000, 0x19fa7558 )
  1783.     ROM_LOAD( "ky_b-4h-.bin", 0x0c000, 0x4000, 0x93e6665c )
  1784.     ROM_LOAD( "ky_b-3n-.bin", 0x10000, 0x4000, 0x0287c525 )
  1785.     ROM_LOAD( "ky_b-4n-.bin", 0x14000, 0x4000, 0x764946e0 )
  1786.     ROM_LOAD( "ky_b-4m-.bin", 0x18000, 0x4000, 0xeced5db9 )
  1787.     ROM_LOAD( "ky_b-3m-.bin", 0x1c000, 0x4000, 0xbe6cee44 )
  1788.     ROM_LOAD( "ky_b-4c-.bin", 0x20000, 0x4000, 0x84d6b65d )
  1789.     ROM_LOAD( "ky_b-4e-.bin", 0x24000, 0x4000, 0xf91f9273 )
  1790.     ROM_LOAD( "ky_b-4d-.bin", 0x28000, 0x4000, 0xa2fc15f0 )
  1791.     ROM_LOAD( "ky_b-4a-.bin", 0x2c000, 0x4000, 0xff2b9c8a )
  1792.  
  1793.     ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1794.     ROM_LOAD( "ky_t-4l-.bin", 0x00000, 0x4000, 0x1d0a9253 )    /* chars */
  1795.     ROM_LOAD( "ky_t-4m-.bin", 0x04000, 0x4000, 0x4075c396 )
  1796.     ROM_LOAD( "ky_t-4n-.bin", 0x08000, 0x4000, 0x7564f2ff )
  1797.  
  1798.     ROM_REGION( 0x0920, REGION_PROMS )
  1799.     ROM_LOAD( "dr25.3f",      0x0000, 0x0100, 0x8e91430b )    /* character palette red component */
  1800.     ROM_LOAD( "dr30.1m",      0x0100, 0x0100, 0x28c73263 )    /* sprite palette red component */
  1801.     ROM_LOAD( "dr26.3h",      0x0200, 0x0100, 0xb563b93f )    /* character palette green component */
  1802.     ROM_LOAD( "dr31.1n",      0x0300, 0x0100, 0x3529210e )    /* sprite palette green component */
  1803.     ROM_LOAD( "dr27.3j",      0x0400, 0x0100, 0x70d668ef )    /* character palette blue component */
  1804.     ROM_LOAD( "dr29.1l",      0x0500, 0x0100, 0x1173a754 )    /* sprite palette blue component */
  1805.     ROM_LOAD( "dr32.5p",      0x0600, 0x0020, 0x11cd1f2e )    /* sprite height, one entry per 32 */
  1806.                                                             /* sprites. Used at run time! */
  1807.     ROM_LOAD( "dr28.8f",      0x0620, 0x0200, 0x6cef0fbd )    /* unknown */
  1808.     ROM_LOAD( "dr33.6f",      0x0820, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1809. ROM_END
  1810.  
  1811. ROM_START( spelunkr )
  1812.     ROM_REGION( 0x18000, REGION_CPU1 )    /* main CPU */
  1813.     ROM_LOAD( "spra.4e",      0x00000, 0x4000, 0xcf811201 )
  1814.     ROM_LOAD( "spra.4d",      0x04000, 0x4000, 0xbb4faa4f )
  1815.     ROM_LOAD( "sprm.7c",      0x10000, 0x4000, 0xfb6197e2 )    /* banked at 8000-9fff */
  1816.     ROM_LOAD( "sprm.7b",      0x14000, 0x4000, 0x26bb25a4 )
  1817.  
  1818.     ROM_REGION( 0x10000, REGION_CPU2 )    /* sound CPU */
  1819.     ROM_LOAD( "spra.3d",      0x8000, 0x04000, 0x4110363c ) /* adpcm data */
  1820.     ROM_LOAD( "spra.3f",      0xc000, 0x04000, 0x67a9d2e6 ) /* 6803 code */
  1821.  
  1822.     ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1823.     ROM_LOAD( "sprm.1d",      0x00000, 0x4000, 0x4ef7ae89 )    /* tiles */
  1824.     ROM_LOAD( "sprm.1e",      0x04000, 0x4000, 0xa3755180 )
  1825.     ROM_LOAD( "sprm.3c",      0x08000, 0x4000, 0xb4008e6a )
  1826.     ROM_LOAD( "sprm.3b",      0x0c000, 0x4000, 0xf61cf012 )
  1827.     ROM_LOAD( "sprm.1c",      0x10000, 0x4000, 0x58b21c76 )
  1828.     ROM_LOAD( "sprm.1b",      0x14000, 0x4000, 0xa95cb3e5 )
  1829.  
  1830.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1831.     ROM_LOAD( "sprb.4k",      0x00000, 0x4000, 0xe7f0e861 )    /* sprites */
  1832.     ROM_LOAD( "sprb.4f",      0x04000, 0x4000, 0x32663097 )
  1833.     ROM_LOAD( "sprb.3p",      0x08000, 0x4000, 0x8fbaf373 )
  1834.     ROM_LOAD( "sprb.4p",      0x0c000, 0x4000, 0x37069b76 )
  1835.     ROM_LOAD( "sprb.4c",      0x10000, 0x4000, 0xcfe46a88 )
  1836.     ROM_LOAD( "sprb.4e",      0x14000, 0x4000, 0x11c48979 )
  1837.  
  1838.     ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1839.     ROM_LOAD( "sprm.4p",      0x00000, 0x0800, 0x4dfe2e63 )    /* chars */
  1840.     ROM_CONTINUE(             0x02000, 0x0800 )            /* first and second half identical, */
  1841.     ROM_CONTINUE(             0x00800, 0x0800 )            /* second half not used by the driver */
  1842.     ROM_CONTINUE(             0x02800, 0x0800 )
  1843.     ROM_CONTINUE(             0x00000, 0x0800 )
  1844.     ROM_CONTINUE(             0x03000, 0x0800 )
  1845.     ROM_CONTINUE(             0x00800, 0x0800 )
  1846.     ROM_CONTINUE(             0x03800, 0x0800 )
  1847.     ROM_LOAD( "sprm.4l",      0x04000, 0x0800, 0x239f2cd4 )
  1848.     ROM_CONTINUE(             0x06000, 0x0800 )
  1849.     ROM_CONTINUE(             0x04800, 0x0800 )
  1850.     ROM_CONTINUE(             0x06800, 0x0800 )
  1851.     ROM_CONTINUE(             0x05000, 0x0800 )
  1852.     ROM_CONTINUE(             0x07000, 0x0800 )
  1853.     ROM_CONTINUE(             0x05800, 0x0800 )
  1854.     ROM_CONTINUE(             0x07800, 0x0800 )
  1855.     ROM_LOAD( "sprm.4m",      0x08000, 0x0800, 0xd6d07d70 )
  1856.     ROM_CONTINUE(             0x0a000, 0x0800 )
  1857.     ROM_CONTINUE(             0x08800, 0x0800 )
  1858.     ROM_CONTINUE(             0x0a800, 0x0800 )
  1859.     ROM_CONTINUE(             0x09000, 0x0800 )
  1860.     ROM_CONTINUE(             0x0b000, 0x0800 )
  1861.     ROM_CONTINUE(             0x09800, 0x0800 )
  1862.     ROM_CONTINUE(             0x0b800, 0x0800 )
  1863.  
  1864.     ROM_REGION( 0x0920, REGION_PROMS )
  1865.     ROM_LOAD( "sprm.2k",      0x0000, 0x0100, 0xfd8fa991 )    /* character palette red component */
  1866.     ROM_LOAD( "sprb.1m",      0x0100, 0x0100, 0x8d8cccad )    /* sprite palette red component */
  1867.     ROM_LOAD( "sprm.2j",      0x0200, 0x0100, 0x0e3890b4 )    /* character palette blue component */
  1868.     ROM_LOAD( "sprb.1n",      0x0300, 0x0100, 0xc40e1cb2 )    /* sprite palette green component */
  1869.     ROM_LOAD( "sprm.2h",      0x0400, 0x0100, 0x0478082b )    /* character palette green component */
  1870.     ROM_LOAD( "sprb.1l",      0x0500, 0x0100, 0x3ec46248 )    /* sprite palette blue component */
  1871.     ROM_LOAD( "sprb.5p",      0x0600, 0x0020, 0x746c6238 )    /* sprite height, one entry per 32 */
  1872.                                                             /* sprites. Used at run time! */
  1873.     ROM_LOAD( "sprm.8h",      0x0620, 0x0200, 0x875cc442 )    /* unknown */
  1874.     ROM_LOAD( "sprb.6f",      0x0820, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1875. ROM_END
  1876.  
  1877. ROM_START( spelunk2 )
  1878.     ROM_REGION( 0x24000, REGION_CPU1 )    /* main CPU */
  1879.     ROM_LOAD( "sp2-a.4e",     0x00000, 0x4000, 0x96c04bbb )
  1880.     ROM_LOAD( "sp2-a.4d",     0x04000, 0x4000, 0xcb38c2ff )
  1881.     ROM_LOAD( "sp2-r.7d",     0x10000, 0x8000, 0x558837ea )    /* banked at 9000-9fff */
  1882.     ROM_LOAD( "sp2-r.7c",     0x18000, 0x8000, 0x4b380162 )    /* banked at 9000-9fff */
  1883.     ROM_LOAD( "sp2-r.7b",     0x20000, 0x4000, 0x7709a1fe )    /* banked at 8000-8fff */
  1884.  
  1885.     ROM_REGION( 0x10000, REGION_CPU2 )    /* sound CPU */
  1886.     ROM_LOAD( "sp2-a.3d",     0x8000, 0x04000, 0x839ec7e2 ) /* adpcm data */
  1887.     ROM_LOAD( "sp2-a.3f",     0xc000, 0x04000, 0xad3ce898 ) /* 6803 code */
  1888.  
  1889.     ROM_REGION( 0x18000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1890.     ROM_LOAD( "sp2-r.1d",     0x00000, 0x8000, 0xc19fa4c9 )    /* tiles */
  1891.     ROM_LOAD( "sp2-r.3b",     0x08000, 0x8000, 0x366604af )
  1892.     ROM_LOAD( "sp2-r.1b",     0x10000, 0x8000, 0x3a0c4d47 )
  1893.  
  1894.     ROM_REGION( 0x18000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1895.     ROM_LOAD( "sp2-b.4k",     0x00000, 0x4000, 0x6cb67a17 )    /* sprites */
  1896.     ROM_LOAD( "sp2-b.4f",     0x04000, 0x4000, 0xe4a1166f )
  1897.     ROM_LOAD( "sp2-b.3n",     0x08000, 0x4000, 0xf59e8b76 )
  1898.     ROM_LOAD( "sp2-b.4n",     0x0c000, 0x4000, 0xfa65bac9 )
  1899.     ROM_LOAD( "sp2-b.4c",     0x10000, 0x4000, 0x1caf7013 )
  1900.     ROM_LOAD( "sp2-b.4e",     0x14000, 0x4000, 0x780a463b )
  1901.  
  1902.     ROM_REGION( 0x0c000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1903.     ROM_LOAD( "sp2-r.4l",     0x00000, 0x0800, 0x6a4b2d8b )    /* chars */
  1904.     ROM_CONTINUE(             0x02000, 0x0800 )            /* first and second half identical, */
  1905.     ROM_CONTINUE(             0x00800, 0x0800 )            /* second half not used by the driver */
  1906.     ROM_CONTINUE(             0x02800, 0x0800 )
  1907.     ROM_CONTINUE(             0x00000, 0x0800 )
  1908.     ROM_CONTINUE(             0x03000, 0x0800 )
  1909.     ROM_CONTINUE(             0x00800, 0x0800 )
  1910.     ROM_CONTINUE(             0x03800, 0x0800 )
  1911.     ROM_LOAD( "sp2-r.4m",     0x04000, 0x0800, 0xe1368b61 )
  1912.     ROM_CONTINUE(             0x06000, 0x0800 )
  1913.     ROM_CONTINUE(             0x04800, 0x0800 )
  1914.     ROM_CONTINUE(             0x06800, 0x0800 )
  1915.     ROM_CONTINUE(             0x05000, 0x0800 )
  1916.     ROM_CONTINUE(             0x07000, 0x0800 )
  1917.     ROM_CONTINUE(             0x05800, 0x0800 )
  1918.     ROM_CONTINUE(             0x07800, 0x0800 )
  1919.     ROM_LOAD( "sp2-r.4p",     0x08000, 0x0800, 0xfc138e13 )
  1920.     ROM_CONTINUE(             0x0a000, 0x0800 )
  1921.     ROM_CONTINUE(             0x08800, 0x0800 )
  1922.     ROM_CONTINUE(             0x0a800, 0x0800 )
  1923.     ROM_CONTINUE(             0x09000, 0x0800 )
  1924.     ROM_CONTINUE(             0x0b000, 0x0800 )
  1925.     ROM_CONTINUE(             0x09800, 0x0800 )
  1926.     ROM_CONTINUE(             0x0b800, 0x0800 )
  1927.  
  1928.     ROM_REGION( 0x0a20, REGION_PROMS )
  1929.     ROM_LOAD( "sp2-r.1k",     0x0000, 0x0200, 0x31c1bcdc )    /* chars red and green component */
  1930.     ROM_LOAD( "sp2-r.2k",     0x0200, 0x0100, 0x1cf5987e )    /* chars blue component */
  1931.     ROM_LOAD( "sp2-r.2j",     0x0300, 0x0100, 0x1acbe2a5 )    /* chars blue component */
  1932.     ROM_LOAD( "sp2-b.1m",     0x0400, 0x0100, 0x906104c7 )    /* sprites red component */
  1933.     ROM_LOAD( "sp2-b.1n",     0x0500, 0x0100, 0x5a564c06 )    /* sprites green component */
  1934.     ROM_LOAD( "sp2-b.1l",     0x0600, 0x0100, 0x8f4a2e3c )    /* sprites blue component */
  1935.     ROM_LOAD( "sp2-b.5p",     0x0700, 0x0020, 0xcd126f6a )    /* sprite height, one entry per 32 */
  1936.                                                             /* sprites. Used at run time! */
  1937.     ROM_LOAD( "sp2-r.8j",     0x0720, 0x0200, 0x875cc442 )    /* unknown */
  1938.     ROM_LOAD( "sp2-b.6f",     0x0920, 0x0100, 0x34d88d3c )    /* video timing? - common to the other games */
  1939. ROM_END
  1940.  
  1941.  
  1942.  
  1943. GAME( 1984, kungfum,  0,       kungfum,  kungfum,  0, ROT0,  "Irem", "Kung Fu Master" )
  1944. GAME( 1984, kungfud,  kungfum, kungfum,  kungfum,  0, ROT0,  "Irem (Data East license)", "Kung Fu Master (Data East)" )
  1945. GAME( 1984, spartanx, kungfum, kungfum,  kungfum,  0, ROT0,  "Irem", "Spartan X (Japan)" )
  1946. GAME( 1984, kungfub,  kungfum, kungfum,  kungfum,  0, ROT0,  "bootleg", "Kung Fu Master (bootleg set 1)" )
  1947. GAME( 1984, kungfub2, kungfum, kungfum,  kungfum,  0, ROT0,  "bootleg", "Kung Fu Master (bootleg set 2)" )
  1948. GAME( 1984, battroad, 0,       battroad, battroad, 0, ROT90, "Irem", "The Battle-Road" )
  1949. GAME( 1984, ldrun,    0,       ldrun,    ldrun,    0, ROT0,  "Irem (licensed from Broderbund)", "Lode Runner (set 1)" )
  1950. GAME( 1984, ldruna,   ldrun,   ldrun,    ldrun,    0, ROT0,  "Irem (licensed from Broderbund)", "Lode Runner (set 2)" )
  1951. GAME( 1984, ldrun2,   0,       ldrun2,   ldrun2,   0, ROT0,  "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back" )    /* Japanese version is called Bangeringu Teikoku No Gyakushuu */
  1952. GAME( 1985, ldrun3,   0,       ldrun3,   ldrun3,   0, ROT0,  "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu" )
  1953. GAME( 1986, ldrun4,   0,       ldrun4,   ldrun4,   0, ROT0,  "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu" )
  1954. GAME( 1985, lotlot,   0,       lotlot,   lotlot,   0, ROT0,  "Irem (licensed from Tokuma Shoten)", "Lot Lot" )
  1955. GAMEX(1986, kidniki,  0,       kidniki,  kidniki,  0, ROT0,  "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_IMPERFECT_SOUND )
  1956. GAMEX(1986, yanchamr, kidniki, kidniki,  kidniki,  0, ROT0,  "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_IMPERFECT_SOUND )
  1957. GAME( 1985, spelunkr, 0,       spelunkr, spelunkr, 0, ROT0,  "Irem (licensed from Broderbund)", "Spelunker" )
  1958. GAME( 1986, spelunk2, 0,       spelunk2, spelunk2, 0, ROT0,  "Irem (licensed from Broderbund)", "Spelunker II" )
  1959.